summaryrefslogtreecommitdiffstats
path: root/13.37
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2010-10-05 11:36:06 +0000
committer Eric Hameleers <alien@slackware.com>2010-10-05 11:36:06 +0000
commit4fe68ef7f7134fa66c56bc01af42ab4e151b4372 (patch)
tree77d46770c60ca4cd8e257dbe4976a67551536323 /13.37
parentf6af94e185a62d1bf3a032fcf13ff4f6d6a0eb03 (diff)
downloadmultilib-4fe68ef7f7134fa66c56bc01af42ab4e151b4372.tar.gz
multilib-4fe68ef7f7134fa66c56bc01af42ab4e151b4372.tar.xz
Update to 4.5.1
Diffstat (limited to '13.37')
-rwxr-xr-x13.37/gcc/gcc-multilib.SlackBuild200
1 files changed, 141 insertions, 59 deletions
diff --git a/13.37/gcc/gcc-multilib.SlackBuild b/13.37/gcc/gcc-multilib.SlackBuild
index 83e4040..3c11864 100755
--- a/13.37/gcc/gcc-multilib.SlackBuild
+++ b/13.37/gcc/gcc-multilib.SlackBuild
@@ -42,7 +42,8 @@
# I see no reason to continue 386 support in the latest Slackware (and indeed
# it's no longer easily possible).
-VERSION=4.4.4
+PKGNAM=gcc
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -58,7 +59,7 @@ TARGET=$ARCH-slackware-linux
BUILD=${BUILD:-1alien}
# How many jobs to run in parallel:
-NUMJOB=" -j 4 "
+NUMJOBS=" -j 7 "
# What do we want to build
LANGS=${LANGS:-'c,c++,ada,fortran,java,objc'}
@@ -124,7 +125,7 @@ tar xvf $CWD/gcc-$VERSION.tar.?z*
# Copy ecj.jar into the TLD of the source. Needed for java compiler.
# This can be retrieved from ftp://sourceware.org/pub/java
-cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar
+cp $CWD/ecj-4.5.jar gcc-$VERSION/ecj.jar
# install docs
( cd gcc-$VERSION
@@ -159,7 +160,7 @@ cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar
mkdir -p $PKG1/usr/doc/gcc-${VERSION}/gcc
( cd gcc
cp -a \
- ABOUT* COPYING* LANG* ONEWS README* SERVICE \
+ ABOUT* COPYING* DATESTAMP DEV-PHASE LANG* ONEWS README* SERVICE \
$PKG1/usr/doc/gcc-$VERSION/gcc
mkdir -p $PKG3/usr/doc/gcc-${VERSION}/gcc/fortran
@@ -275,7 +276,7 @@ cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar
( cd libstdc++-v3
cp -a \
README* \
- docs/html/faq \
+ doc/html/faq.html \
$PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3
if [ -r ChangeLog ]; then
cat ChangeLog | head -n 1000 > $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3/ChangeLog
@@ -283,6 +284,72 @@ cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar
fi
)
)
+
+# Add fastjar to the gcc-java package:
+( cd $TMP
+ FASTJARVER=$(echo $CWD/fastjar-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+ echo
+ echo "Building fastjar-$FASTJARVER first"
+ echo
+ rm -rf fastjar-$FASTJARVER
+ tar xvf $CWD/fastjar-$FASTJARVER.tar.xz || exit 1
+ cd fastjar-$FASTJARVER || exit
+ chown -R root:root .
+ find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+ for patch in $CWD/fastjar-patches/*.gz ; do
+ zcat $patch | patch -p1 --verbose || exit 1
+ done
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --build=$ARCH-slackware-linux
+ make $NUMJOBS || exit 1
+ make install DESTDIR=$PKG5 || exit 1
+ mkdir -p $PKG5/usr/doc/fastjar-$FASTJARVER
+ cp -a \
+ AUTHORS CHANGES COPYING* INSTALL NEWS README* TODO \
+ $PKG5/usr/doc/fastjar-$FASTJARVER
+ # If there's a ChangeLog, installing at least part of the recent history
+ # is useful, but don't let it get totally out of control:
+ if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG5/usr/doc/fastjar-$FASTJARVER)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+ fi
+ find $PKG5 | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ # Compress and if needed symlink the man pages:
+ if [ -d $PKG5/usr/man ]; then
+ ( cd $PKG5/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+ fi
+ # Compress info files, if any:
+ if [ -d $PKG5/usr/info ]; then
+ ( cd $PKG5/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+ fi
+ echo
+) || exit 1
+
# build gcc
( mkdir gcc.build.lnx;
cd gcc.build.lnx;
@@ -314,6 +381,8 @@ cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar
../gcc-$VERSION/configure \
--prefix=/usr \
--libdir=/usr/lib$LIBDIRSUFFIX \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
--enable-shared \
--enable-bootstrap \
--enable-languages=${LANGS} \
@@ -335,30 +404,36 @@ cp $CWD/ecj-4.3.jar gcc-$VERSION/ecj.jar
if [ "$LANGS" = "all" ]; then
# Not building ada, so bootstrap not required:
- make $NUMJOB
+ make $NUMJOBS
else
# Include all debugging info (for now):
- make $NUMJOB bootstrap
+ make $NUMJOBS bootstrap
fi
( cd gcc
- make $NUMJOB gnatlib GNATLIBCFLAGS="$SLKCFLAGS"
+ make $NUMJOBS gnatlib GNATLIBCFLAGS="$SLKCFLAGS"
# This wants a shared -ladd2line?
#make gnatlib-shared
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
- make $NUMJOB gnattools
+ make $NUMJOBS gnattools
)
make info
# Set GCCCHECK=something to run the tests
if [ ! -z $GCCCHECK ]; then
- make $NUMJOB check
+ make $NUMJOBS check
fi
make install DESTDIR=$PKG1
+# KLUDGE ALERT
+# These *gdb.py files are causing ldconfig to complain, so they are going
+# to be REMOVED for now... at some point, they might be moved somewhere
+# else, in which case things should Just Work(tm). Keep an eye on it.
+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
@@ -373,58 +448,65 @@ fi
# make ada.install-common DESTDIR=$PKG1
# make install-gnatlib DESTDIR=$PKG1
- make -i install-info DESTDIR=$PKG1
+make -i install-info DESTDIR=$PKG1
- chmod 755 $PKG1/usr/lib${LIBDIRSUFFIX}/libgcc_s.so.1
+chmod 755 $PKG1/usr/lib${LIBDIRSUFFIX}/libgcc_s.so.1
- # This is provided by binutils, so delete it here:
- rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libiberty.a
- rm -f $PKG1/usr/lib/libiberty.a # catch-all
+# The (huge) static GNU java libraries are not packaged. In nearly all
+# cases one or more dependencies will not be available as static anyway.
+rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libgcj.a
+rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libgcj-tools.a
- # Fix stuff up:
- ( cd $PKG1/usr/info ; rm dir ; gzip -9 * )
- ( cd $PKG1
- # *not* ${LIBDIRSUFFIX}
- mkdir -p lib
- cd lib
- ln -sf /usr/bin/cpp .
- )
- ( cd $PKG1/usr/bin
- mv g++ g++-gcc-$VERSION
- mv gcc gcc-$VERSION
- mv ${TARGET}-gfortran gfortran-gcc-$VERSION
- ln -sf g++-gcc-$VERSION g++
- ln -sf gcc-$VERSION gcc
- ln -sf g++ c++
- ln -sf gcc cc
- ln -sf gcc-$VERSION ${TARGET}-gcc
- ln -sf gcc-$VERSION ${TARGET}-gcc-$VERSION
- ln -sf gcj ${TARGET}-gcj
- ln -sf gcjh ${TARGET}-gcjh
- ln -sf g++-gcc-$VERSION ${TARGET}-c++
- ln -sf g++-gcc-$VERSION ${TARGET}-g++
- ln -sf gfortran-gcc-$VERSION gfortran
- ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran
- ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran-$VERSION
- ln -sf gfortran-gcc-$VERSION ${TARGET}-g95
- ln -sf gfortran g95
- ln -sf gfortran f95
- ln -sf gfortran-gcc-$VERSION ${TARGET}-g77
- ln -sf gfortran g77
- ln -sf gfortran f77
- )
- ( cd $PKG1/usr/man
- gzip -9 */*
- cd man1
- ln -sf g++.1.gz c++.1.gz
- ln -sf gcc.1.gz cc.1.gz
- )
-
- ## build the txz package
- #(
- # cd $PKG1;
- # makepkg -l y -c n $TMP/gcc-${VERSION}_multilib-$ARCH-$BUILD.txz
- #)
+# This is provided by binutils, so delete it here:
+rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libiberty.a
+rm -f $PKG1/usr/lib/libiberty.a # catch-all
+
+# Fix stuff up:
+( cd $PKG1/usr/info ; rm dir ; gzip -9 * )
+( cd $PKG1
+ # *not* ${LIBDIRSUFFIX}
+ mkdir -p lib
+ cd lib
+ ln -sf /usr/bin/cpp .
+)
+
+( cd $PKG1/usr/bin
+ mv g++ g++-gcc-$VERSION
+ mv gcc gcc-$VERSION
+ mv ${TARGET}-gfortran gfortran-gcc-$VERSION
+ ln -sf g++-gcc-$VERSION g++
+ ln -sf gcc-$VERSION gcc
+ ln -sf g++ c++
+ ln -sf gcc cc
+ ln -sf gcc-$VERSION ${TARGET}-gcc
+ ln -sf gcc-$VERSION ${TARGET}-gcc-$VERSION
+ ln -sf gcj ${TARGET}-gcj
+ ln -sf gcjh ${TARGET}-gcjh
+ ln -sf g++-gcc-$VERSION ${TARGET}-c++
+ ln -sf g++-gcc-$VERSION ${TARGET}-g++
+ ln -sf gfortran-gcc-$VERSION gfortran
+ ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran
+ ln -sf gfortran-gcc-$VERSION ${TARGET}-gfortran-$VERSION
+ ln -sf gfortran-gcc-$VERSION ${TARGET}-g95
+ ln -sf gfortran g95
+ ln -sf gfortran f95
+ ln -sf gfortran-gcc-$VERSION ${TARGET}-g77
+ ln -sf gfortran g77
+ ln -sf gfortran f77
+)
+
+( cd $PKG1/usr/man
+ gzip -9 */*
+ cd man1
+ ln -sf g++.1.gz c++.1.gz
+ ln -sf gcc.1.gz cc.1.gz
+)
+
+## build the txz package
+#(
+# cd $PKG1;
+# makepkg -l y -c n $TMP/gcc-${VERSION}_multilib-$ARCH-$BUILD.txz
+#)
# keep a log
) 2>&1 | tee $TMP/gcc.build.log