summaryrefslogtreecommitdiffstats
path: root/source/d/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'source/d/gcc')
-rw-r--r--source/d/gcc/antlr-runtime-3.4.jarbin0 -> 164368 bytes
-rw-r--r--source/d/gcc/create_gcj_jvm.sh93
-rw-r--r--source/d/gcc/ecj.sh5
-rw-r--r--source/d/gcc/gcc-4.7.1.adalib.pic.diff40
-rwxr-xr-xsource/d/gcc/gcc.SlackBuild144
-rw-r--r--source/d/gcc/slack-desc.gcc-gfortran16
-rw-r--r--source/d/gcc/slack-desc.gcc-go19
7 files changed, 285 insertions, 32 deletions
diff --git a/source/d/gcc/antlr-runtime-3.4.jar b/source/d/gcc/antlr-runtime-3.4.jar
new file mode 100644
index 000000000..865a537b0
--- /dev/null
+++ b/source/d/gcc/antlr-runtime-3.4.jar
Binary files differ
diff --git a/source/d/gcc/create_gcj_jvm.sh b/source/d/gcc/create_gcj_jvm.sh
new file mode 100644
index 000000000..d1011860f
--- /dev/null
+++ b/source/d/gcc/create_gcj_jvm.sh
@@ -0,0 +1,93 @@
+# ---------------------------------------------------------------------------
+# This script creates a directory structure below /usr/lib/jvm and populates
+# it with symlinks to GCC binaries.
+# This will work as a compatibility layer to emulate an Oracle JDK/JRE.
+# This emulation is required in order to compile OpenJDK using GNU java.
+#
+# The same can automatically be achieved in Slackware's gcc packages if
+# the 'configure' command is called with the following additional parameters:
+# --enable-java-home \
+# --with-java-home=/usr/lib$LIBDIRSUFFIX/jvm/jre \
+# --with-jvm-root-dir=/usr/lib$LIBDIRSUFFIX/jvm \
+# --with-jvm-jar-dir=/usr/lib$LIBDIRSUFFIX/jvm/jvm-exports \
+# --with-arch-directory=$LIB_ARCH \
+#
+# Author: Eric Hameleers <alien@slackware.com> December 2011
+# ---------------------------------------------------------------------------
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ LIB_ARCH=i386
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+ LIB_ARCH=i386
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ LIB_ARCH=amd64
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ LIB_ARCH=$ARCH
+fi
+
+# Where does the OpenJDK SlackBuild expect the GNU java compatibility symlinks:
+JVM=${1:-/usr/lib${LIBDIRSUFFIX}/jvm}
+BINDIR=/usr/bin
+
+# What version of GCC do we have installed:
+GCJVER=$(gcj -dumpversion)
+
+# First, remove the old set of symlinks if they should exist:
+rm -fr $JVM
+
+# Create a JDK compatible directory structure for GNU java:
+mkdir -p $JVM
+mkdir -p $JVM/bin
+mkdir -p $JVM/jre/bin
+mkdir -p $JVM/jre/lib/${LIB_ARCH}/client
+mkdir -p $JVM/jre/lib/${LIB_ARCH}/server
+mkdir -p $JVM/lib
+
+ln -sf $BINDIR/gjar $JVM/bin/jar
+ln -sf $BINDIR/grmic $JVM/bin/rmic
+ln -sf $BINDIR/gjavah $JVM/bin/javah
+ln -sf $BINDIR/jcf-dump $JVM/bin/javap
+ln -sf $BINDIR/gappletviewer $JVM/bin/appletviewer
+ln -sf $BINDIR/grmiregistry $JVM/bin/rmiregistry
+ln -sf $BINDIR/grmiregistry $JVM/jre/bin/rmiregistry
+ln -sf $BINDIR/gkeytool $JVM/bin/keytool
+ln -sf $BINDIR/gkeytool $JVM/jre/bin/keytool
+ln -sf $BINDIR/gij $JVM/bin/java
+ln -sf $BINDIR/ecj $JVM/bin/javac
+ln -sf /usr/lib/gcj-${GCJVER}-11/libjvm.so $JVM/jre/lib/${LIB_ARCH}/client/libjvm.so
+ln -sf /usr/lib/gcj-${GCJVER}-11/libjvm.so $JVM/jre/lib/${LIB_ARCH}/server/libjvm.so
+ln -sf /usr/lib/gcj-${GCJVER}-11/libjawt.so $JVM/jre/lib/${LIB_ARCH}/libjawt.so
+ln -sf /usr/share/java/libgcj-${GCJVER}.jar $JVM/jre/lib/rt.jar
+ln -sf /usr/share/java/libgcj-tools-${GCJVER}.jar $JVM/lib/tools.jar
+ln -sf /usr/include/c++/${GCJVER}/gnu/java $JVM/include
+
+# Add a Eclipse Java Compiler wrapper which is required
+# for bootstrapping OpenJDK using GNU java:
+cat <<EOT > /usr/bin/ecj
+#!/bin/sh
+
+CLASSPATH=/usr/share/java/ecj.jar\${CLASSPATH:+:}\$CLASSPATH \
+ java org.eclipse.jdt.internal.compiler.batch.Main "\$@"
+
+EOT
+chmod 755 /usr/bin/ecj
+
+
diff --git a/source/d/gcc/ecj.sh b/source/d/gcc/ecj.sh
new file mode 100644
index 000000000..1d8b79793
--- /dev/null
+++ b/source/d/gcc/ecj.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+CLASSPATH=@JAVADIR@/ecj.jar${CLASSPATH:+:}$CLASSPATH \
+ java org.eclipse.jdt.internal.compiler.batch.Main "$@"
+
diff --git a/source/d/gcc/gcc-4.7.1.adalib.pic.diff b/source/d/gcc/gcc-4.7.1.adalib.pic.diff
new file mode 100644
index 000000000..792ec654b
--- /dev/null
+++ b/source/d/gcc/gcc-4.7.1.adalib.pic.diff
@@ -0,0 +1,40 @@
+From 176ff0f9a1016553978d6cf41770703e2ad90958 Mon Sep 17 00:00:00 2001
+From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 14 Jun 2012 17:45:53 +0000
+Subject: [PATCH 1/1] * gcc-interface/Makefile.in (gnatlib-shared-default): Append
+ $(PICFLAG_FOR_TARGET) to GNATLIBCFLAGS_FOR_C passed to submake.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@188623 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+ gcc/ada/ChangeLog | 5 +++++
+ gcc/ada/gcc-interface/Makefile.in | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
+index 7e3195a..072a3f2 100644
+--- a/gcc/ada/ChangeLog
++++ b/gcc/ada/ChangeLog
+@@ -1,3 +1,8 @@
++2012-06-14 Jakub Jelinek <jakub@redhat.com>
++
++ * gcc-interface/Makefile.in (gnatlib-shared-default): Append
++ $(PICFLAG_FOR_TARGET) to GNATLIBCFLAGS_FOR_C passed to submake.
++
+ 2012-06-14 Release Manager
+
+ * GCC 4.7.1 released.
+diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
+index ee8db38..f9e7eda 100644
+--- a/gcc/ada/gcc-interface/Makefile.in
++++ b/gcc/ada/gcc-interface/Makefile.in
+@@ -2597,7 +2597,7 @@ gnatlib-shared-default:
+ $(MAKE) $(FLAGS_TO_PASS) \
+ GNATLIBFLAGS="$(GNATLIBFLAGS)" \
+ GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
+- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
++ GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \
+ MULTISUBDIR="$(MULTISUBDIR)" \
+ THREAD_KIND="$(THREAD_KIND)" \
+ gnatlib
+--
+1.7.3.4
diff --git a/source/d/gcc/gcc.SlackBuild b/source/d/gcc/gcc.SlackBuild
index 8288a2a44..df5f99d5f 100755
--- a/source/d/gcc/gcc.SlackBuild
+++ b/source/d/gcc/gcc.SlackBuild
@@ -2,7 +2,7 @@
# GCC package build script (written by volkerdi@slackware.com)
#
# Copyright 2003, 2004 Slackware Linux, Inc., Concord, California, USA
-# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,6 +23,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
+# Modified 2011 by Eric Hameleers <alien at slackware.com> for OpenJDK.
+
# Some notes, Fri May 16 12:31:32 PDT 2003:
#
# Why i486 and not i386? Because the shared C++ libraries in gcc-3.2.x will
@@ -44,50 +46,65 @@
PKGNAM=gcc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# How many jobs to run in parallel:
NUMJOBS=" -j 7 "
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$(uname -m)" in
+ i?86) ARCH=i486 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) ARCH=$(uname -m) ;;
esac
+ export ARCH
fi
-TARGET=$ARCH-slackware-linux
-
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
LIBDIRSUFFIX=""
+ LIB_ARCH=i386
elif [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
+ LIB_ARCH=i386
elif [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
+ LIB_ARCH=i386
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686"
LIBDIRSUFFIX=""
+ LIB_ARCH=i386
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
+ LIB_ARCH=s390
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+ LIB_ARCH=amd64
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+ LIB_ARCH=armv7hl
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
+ LIB_ARCH=$ARCH
fi
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
CWD=$(pwd)
# Temporary build location. This should *NOT* be a directory
# path a non-root user could create later...
-TMP=/gcc-$(mcookie)
+TMP=${TMP:-"/gcc-$(mcookie)"}
# This is the main DESTDIR target:
PKG1=$TMP/package-gcc
@@ -98,15 +115,16 @@ PKG4=$TMP/package-gcc-gnat
PKG5=$TMP/package-gcc-java
PKG6=$TMP/package-gcc-objc
PKG7=$TMP/package-gcc-g++-gch
+PKG8=$TMP/package-gcc-go
# Clear the build locations:
if [ -d $TMP ]; then
rm -rf $TMP
fi
-mkdir -p $PKG{1,2,3,4,5,6,7}/usr/doc/gcc-$VERSION
+mkdir -p $PKG{1,2,3,4,5,6,7,8}/usr/doc/gcc-$VERSION
# Insert package descriptions:
-mkdir -p $PKG{1,2,3,4,5,6,7}/install
+mkdir -p $PKG{1,2,3,4,5,6,7,8}/install
cat $CWD/slack-desc.gcc > $PKG1/install/slack-desc
cat $CWD/slack-desc.gcc-g++ > $PKG2/install/slack-desc
cat $CWD/slack-desc.gcc-gfortran > $PKG3/install/slack-desc
@@ -114,6 +132,7 @@ cat $CWD/slack-desc.gcc-gnat > $PKG4/install/slack-desc
cat $CWD/slack-desc.gcc-java > $PKG5/install/slack-desc
cat $CWD/slack-desc.gcc-objc > $PKG6/install/slack-desc
# cat $CWD/slack-desc.gcc-g++-gch > $PKG7/install/slack-desc
+cat $CWD/slack-desc.gcc-go > $PKG8/install/slack-desc
cd $TMP
tar xvf $CWD/gcc-$VERSION.tar.?z*
@@ -122,6 +141,16 @@ tar xvf $CWD/gcc-$VERSION.tar.?z*
# This can be retrieved from ftp://sourceware.org/pub/java
cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
+# Use an antlr runtime to compile javadoc.
+# The runtime can be obtained from:
+#https://oss.sonatype.org/content/repositories/releases/org/antlr/antlr-runtime/
+ANTLJAR=$(echo $CWD/antlr-*.jar | tail -1)
+
+# Upstream -fPIC fix for gnat build:
+cd gcc-$VERSION
+ zcat $CWD/gcc-4.7.1.adalib.pic.diff.gz | patch -p1 --verbose || exit 1
+cd ..
+
# install docs
( cd gcc-$VERSION
# Smite the fixincludes:
@@ -134,9 +163,8 @@ cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
find . -perm 664 -exec chmod 644 {} \;
mkdir -p $PKG1/usr/doc/gcc-$VERSION
cp -a \
- BUGS COPYING* \
- ChangeLog.tree-ssa FAQ INSTALL \
- LAST_UPDATED MAINTAINERS \
+ COPYING* ChangeLog* FAQ INSTALL \
+ LAST_UPDATED MAINTAINERS NEWS \
README* *.html \
$PKG1/usr/doc/gcc-$VERSION
@@ -198,6 +226,19 @@ cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
touch -r ChangeLog $PKG6/usr/doc/gcc-${VERSION}/gcc/objc/ChangeLog
fi
)
+
+ mkdir -p $PKG8/usr/doc/gcc-${VERSION}/gcc/go
+ ( cd go
+ if [ -r ChangeLog ]; then
+ cat ChangeLog | head -n 1000 > $PKG8/usr/doc/gcc-${VERSION}/gcc/go/ChangeLog
+ touch -r ChangeLog $PKG8/usr/doc/gcc-${VERSION}/gcc/go/ChangeLog
+ fi
+ cp -a \
+ README* THREADS* \
+ gofrontend/{LICENSE,PATENTS,README} \
+ $PKG8/usr/doc/gcc-${VERSION}/gcc/go
+ )
+
) || exit 1
mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libgfortran
@@ -278,6 +319,7 @@ cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
touch -r ChangeLog $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3/ChangeLog
fi
)
+
)
# Add fastjar to the gcc-java package:
@@ -305,7 +347,7 @@ cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
--libdir=/usr/lib$LIBDIRSUFFIX \
--mandir=/usr/man \
--infodir=/usr/info \
- --build=$ARCH-slackware-linux
+ --build=$TARGET
make $NUMJOBS || exit 1
make install DESTDIR=$PKG5 || exit 1
mkdir -p $PKG5/usr/doc/fastjar-$FASTJARVER
@@ -372,17 +414,26 @@ cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
--infodir=/usr/info \
--enable-shared \
--enable-bootstrap \
- --enable-languages=ada,c,c++,fortran,java,objc,lto \
+ --enable-languages=ada,c,c++,fortran,go,java,lto,objc \
--enable-threads=posix \
--enable-checking=release \
+ --enable-objc-gc \
--with-system-zlib \
- --with-python-dir=/lib$LIBDIRSUFFIX/python2.6/site-packages \
+ --with-python-dir=/lib$LIBDIRSUFFIX/python2.7/site-packages \
--disable-libunwind-exceptions \
--enable-__cxa_atexit \
--enable-libssp \
--enable-lto \
--with-gnu-ld \
--verbose \
+ --enable-java-home \
+ --with-java-home=/usr/lib$LIBDIRSUFFIX/jvm/jre \
+ --with-jvm-root-dir=/usr/lib$LIBDIRSUFFIX/jvm \
+ --with-jvm-jar-dir=/usr/lib$LIBDIRSUFFIX/jvm/jvm-exports \
+ --with-arch-directory=$LIB_ARCH \
+ --with-antlr-jar=$ANTLJAR \
+ --enable-java-awt=gtk \
+ --disable-gtktest \
$GCC_ARCHOPTS \
--target=${TARGET} \
--build=${TARGET} \
@@ -418,14 +469,14 @@ cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/*gdb.py
# Be sure the "specs" file is installed.
-if [ ! -r $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs ]; then
- cat stage1-gcc/specs > $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs
+if [ ! -r $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs ]; then
+ cat stage1-gcc/specs > $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs
fi
# Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory:
if [ "$ARCH" = "x86_64" ]; then
sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \
- $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs
+ $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs
fi
# make ada.install-common DESTDIR=$PKG1
@@ -462,6 +513,9 @@ rm -f $PKG1/usr/lib/libiberty.a # catch-all
ln -sf gcc cc
ln -sf gcc-$VERSION ${TARGET}-gcc
ln -sf gcc-$VERSION ${TARGET}-gcc-$VERSION
+ ln -sf gcc-ar ${TARGET}-gcc-ar
+ ln -sf gcc-nm ${TARGET}-gcc-nm
+ ln -sf gcc-ranlib ${TARGET}-gcc-ranlib
ln -sf gcj ${TARGET}-gcj
ln -sf gcjh ${TARGET}-gcjh
ln -sf g++-gcc-$VERSION ${TARGET}-c++
@@ -531,6 +585,11 @@ rm -f $PKG1/usr/lib/libiberty.a # catch-all
)
# gcc-gnat:
+# First, relocate usr/bin/gnative2ascii to the gcc-java package so it
+# isn't matched and accidentally put in gcc-gnat:
+mkdir -p $PKG5/usr/bin
+mv $PKG1/usr/bin/gnative2ascii $PKG5/usr/bin
+# Now make the gcc-gnat package tree:
( cd $PKG4
mkdir -p usr/bin
mv $PKG1/usr/bin/gnat* usr/bin
@@ -583,11 +642,11 @@ rm -f $PKG1/usr/lib/libiberty.a # catch-all
mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/jvmpi.h usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include
mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/libffi usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include
# aot-compile Python plugins:
- if [ ! -d $PKG1/usr/lib${LIBDIRSUFFIX}/python2.6 ]; then
- echo "NO $PKG1/usr/lib${LIBDIRSUFFIX}/python2.6 !"
+ if [ ! -d $PKG1/usr/lib${LIBDIRSUFFIX}/python2.7 ]; then
+ echo "NO $PKG1/usr/lib${LIBDIRSUFFIX}/python2.7 !"
exit 1
fi
- mv $PKG1/usr/lib${LIBDIRSUFFIX}/python2.6 usr/lib${LIBDIRSUFFIX}
+ mv $PKG1/usr/lib${LIBDIRSUFFIX}/python2.7 usr/lib${LIBDIRSUFFIX}
mkdir -p usr/info
mv $PKG1/usr/info/gcj.* usr/info
# mv $PKG1/usr/info/fastjar.* usr/info
@@ -633,8 +692,24 @@ rm -f $PKG1/usr/lib/libiberty.a # catch-all
mv $PKG1/usr/man/man1/jv-convert.1.gz usr/man/man1
mv $PKG1/usr/man/man1/jv-scan.1.gz usr/man/man1
mv $PKG1/usr/man/man1/rebuild-gcj-db.1.gz usr/man/man1
+ mkdir -p usr/man/man3
+ mv $PKG1/usr/man/man3/ffi* usr/man/man3
mkdir -p usr/share
mv $PKG1/usr/share/java usr/share
+ # The ecj wrapper script:
+ cat $CWD/ecj.sh | sed -e "s,@JAVADIR@,/usr/share/java," > usr/bin/ecj
+ chmod 755 usr/bin/ecj
+ # The JAVA_HOME compatibility links.
+ # Caution: non-multilib arch-independent stuff! No lib64 here.
+ mkdir -p usr/lib$LIBDIRSUFFIX
+ mv $PKG1/usr/lib$LIBDIRSUFFIX/jvm* usr/lib$LIBDIRSUFFIX
+ # And add the missing javac symlink:
+ ln -s ../../../bin/ecj usr/lib$LIBDIRSUFFIX/jvm/bin/javac
+ # Don't package libffi stuff anymore. GCC will link the internal version
+ # statically, and we'll need a newer one elsewhere.
+ find . -name "ffi*.h" | xargs rm
+ find . -name "libffi*" | xargs rm
+ rm usr/man/man3/ffi*
)
# gcc-objc:
@@ -655,6 +730,25 @@ rm -f $PKG1/usr/lib/libiberty.a # catch-all
# mv $PKG2/usr/include/c++/$VERSION/$TARGET/bits/stdc++.h.gch usr/include/c++/$VERSION/$TARGET/bits
#)
+# gcc-go:
+( cd $PKG8
+ mkdir -p usr/bin
+ mv $PKG1/usr/bin/*gccgo* usr/bin
+ mkdir -p usr/libexec/gcc/$TARGET/$VERSION
+ mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/go1 usr/libexec/gcc/$TARGET/$VERSION/go1
+ mkdir -p usr/info
+ mv $PKG1/usr/info/gccgo.info.gz usr/info
+ mkdir -p usr/lib${LIBDIRSUFFIX}
+ mv $PKG1/usr/lib${LIBDIRSUFFIX}/go usr/lib${LIBDIRSUFFIX}
+ mv $PKG1/usr/lib${LIBDIRSUFFIX}/{libgo.la,libgo.so.0.*,libgobegin.a} usr/lib${LIBDIRSUFFIX} || exit 1
+ # Ordinarily Slackware doesn't package static libraries, but in this case
+ # it is useful for deploying compiled binaries on machines that do not yet
+ # have libgo.so.0.0.0.
+ mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgo.a usr/lib${LIBDIRSUFFIX}
+ mkdir -p usr/man/man1
+ mv $PKG1/usr/man/man1/gccgo.1.gz usr/man/man1
+) || exit 1
+
# Filter all .la files (thanks much to Mark Post for the sed script):
( cd $TMP
for file in $(find . -type f -name "*.la") ; do
@@ -665,7 +759,7 @@ rm -f $PKG1/usr/lib/libiberty.a # catch-all
)
## Strip bloated binaries and libraries:
-for dir in $PKG{1,2,3,4,5,6}; do
+for dir in $PKG{1,2,3,4,5,6,8}; do
( cd $dir
find . -name "lib*so*" -exec strip --strip-unneeded "{}" \;
find . -name "lib*a" -exec strip -g "{}" \;
@@ -689,6 +783,8 @@ done
makepkg -l y -c n $TMP/gcc-objc-$VERSION-$ARCH-$BUILD.txz )
#( cd $PKG7
# makepkg -l y -c n $TMP/gcc-g++-gch-$VERSION-$ARCH-$BUILD.txz )
+( cd $PKG8
+ makepkg -l y -c n $TMP/gcc-go-$VERSION-$ARCH-$BUILD.txz )
echo
echo "Slackware GCC package build complete!"
diff --git a/source/d/gcc/slack-desc.gcc-gfortran b/source/d/gcc/slack-desc.gcc-gfortran
index ac844f0f1..5141cb02c 100644
--- a/source/d/gcc/slack-desc.gcc-gfortran
+++ b/source/d/gcc/slack-desc.gcc-gfortran
@@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
gcc-gfortran: gcc-gfortran (Fortran support for GCC)
gcc-gfortran:
+gcc-gfortran: The GNU Fortran compiler is fully compliant with the Fortran 95
+gcc-gfortran: Standard and includes legacy F77 support. In addition, a significant
+gcc-gfortran: number of Fortran 2003 and Fortran 2008 features are implemented.
+gcc-gfortran: GNU Fortran also contains many standard and extensions and can be
+gcc-gfortran: used to run real-world programs.
+gcc-gfortran:
gcc-gfortran: This package contains those parts of the compiler collection
-gcc-gfortran: needed to compile Fortran code. The base gcc package is also
-gcc-gfortran: required. The GNU Fortran compiler is able to compile nearly all
-gcc-gfortran: standard-compliant Fortran 95, Fortran 90, and Fortran 77 programs,
-gcc-gfortran: including a number of standard and non-standard extensions, and can
-gcc-gfortran: be used on real-world programs. In particular, the supported
-gcc-gfortran: extensions include OpenMP, Cray-style pointers, and several Fortran
-gcc-gfortran: 2003 features such as enumeration, stream I/O, and some of the
-gcc-gfortran: enhancements to allocatable array support from TR 15581.
+gcc-gfortran: needed to compile Fortran code. The gcc package is also required.
+gcc-gfortran:
diff --git a/source/d/gcc/slack-desc.gcc-go b/source/d/gcc/slack-desc.gcc-go
new file mode 100644
index 000000000..cdd859bc1
--- /dev/null
+++ b/source/d/gcc/slack-desc.gcc-go
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gcc-go: gcc-go (Go support for GCC)
+gcc-go:
+gcc-go: Go is a compiled, garbage-collected, concurrent programming language
+gcc-go: developed by Google Inc. The initial design of Go was started in
+gcc-go: September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson.
+gcc-go: Rob Pike has stated that Go is being used "for real stuff" at Google.
+gcc-go: Go's "gc" compiler targets the Linux, Mac OS X, FreeBSD, OpenBSD and
+gcc-go: Microsoft Windows operating systems, and the i386, amd64, and ARM
+gcc-go: processor architectures.
+gcc-go:
+gcc-go: Homepage: http://golang.org