diff options
Diffstat (limited to '')
-rwxr-xr-x | source/d/gcc/gcc.SlackBuild | 295 |
1 files changed, 189 insertions, 106 deletions
diff --git a/source/d/gcc/gcc.SlackBuild b/source/d/gcc/gcc.SlackBuild index f4c17cdcc..e23853e0c 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, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -52,12 +52,29 @@ # efficient on modern CPUs running in 32-bit mode than the alternate i586 # instructions. No need to throw i586 CPUs under the bus (yet). +# Some more notes, Wed Aug 28 19:41:13 UTC 2024: +# +# Time to throw i586 CPUs and any others that lack SSE2 under the bus. +# Sorry, but upstream projects have begun to ignore -march= enough that there +# just isn't enough upside to try to keep things even at -march=i686 as a +# baseline. Might as well get some SIMD enhancement and quit killing +# performance in a futile attempt to support computers that are in landfills. + cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gcc SRCVER=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} VERSION=$(echo $SRCVER | cut -f 1 -d _) -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} + +# Which compilers do we want to build? +LANGS=${LANGS:-'ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust'} + +# An optional tag for after the version number in the package's filename: +#VERTAG=_multilib + +# An optional tag for after the build number in the package's filename: +#TAG=alien # How many jobs to run in parallel: NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -65,7 +82,7 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$(uname -m)" in - i?86) ARCH=i586 ;; + i?86) ARCH=i686 ;; arm*) readelf /usr/bin/file -A | grep -E -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; # Unless $ARCH is already set, use uname -m for all other archs: *) ARCH=$(uname -m) ;; @@ -73,49 +90,39 @@ if [ -z "$ARCH" ]; then export ARCH fi +# Try to figure out if we want multilib (or set MULTILIB= manually). +# BTW, --disable-multilib is only ever used on x86_64. +# Using it elsewhere will break the build. +if [ "$ARCH" = "x86_64" -a ! -L /lib/ld-linux.so.2 ]; then + MULTILIB=${MULTILIB:-"--disable-multilib"} +else + MULTILIB=${MULTILIB:-"--enable-multilib"} +fi + # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information # could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then - echo "gcc-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-g++-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-gfortran-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-gnat-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-objc-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-go-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-gdc-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-gm2-$VERSION-$ARCH-$BUILD.txz" + echo "gcc-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-g++-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-gfortran-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-gnat-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-objc-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-go-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-gdc-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-gm2-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" + echo "gcc-rust-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz" exit 0 fi -if [ "$ARCH" = "i386" ]; then - SLKCFLAGS="-O2 -march=i386 -mcpu=i686" - LIBDIRSUFFIX="" - LIB_ARCH=i386 -elif [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +if [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=pentium4 -mtune=generic" 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" + SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -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="" @@ -146,13 +153,14 @@ PKG6=$TMP/package-gcc-objc PKG8=$TMP/package-gcc-go PKG10=$TMP/package-gcc-gdc PKG11=$TMP/package-gcc-gm2 +PKG12=$TMP/package-gcc-rust # Clear the build locations: -rm -rf $PKG{1,2,3,4,6,8,10,11} -mkdir -p $PKG{1,2,3,4,6,8,10,11}/usr/doc/gcc-$VERSION +rm -rf $PKG{1,2,3,4,6,8,10,11,12} +mkdir -p $PKG{1,2,3,4,6,8,10,11,12}/usr/doc/gcc-$VERSION # Insert package descriptions: -mkdir -p $PKG{1,2,3,4,6,8,9,10,11}/install +mkdir -p $PKG{1,2,3,4,6,8,9,10,11,12}/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 @@ -161,6 +169,7 @@ cat $CWD/slack-desc.gcc-objc > $PKG6/install/slack-desc cat $CWD/slack-desc.gcc-go > $PKG8/install/slack-desc cat $CWD/slack-desc.gcc-gdc > $PKG10/install/slack-desc cat $CWD/slack-desc.gcc-gm2 > $PKG11/install/slack-desc +cat $CWD/slack-desc.gcc-rust > $PKG12/install/slack-desc cd gcc-$SRCVER || exit 1 @@ -283,6 +292,18 @@ mkdir -p $PKG11/usr/doc/gcc-${VERSION}/gcc/m2 $PKG11/usr/doc/gcc-${VERSION}/gcc/m2 ) +mkdir -p $PKG12/usr/doc/gcc-${VERSION}/gcc/rust +( cd gcc/rust || exit 0 + if [ -r ChangeLog ]; then + cat ChangeLog | head -n 1000 > $PKG12/usr/doc/gcc-${VERSION}/gcc/rust/ChangeLog + touch -r ChangeLog $PKG12/usr/doc/gcc-${VERSION}/gcc/rust/ChangeLog + fi + cp -a \ + CONTRIBUTING* \ + COPYING* NEWS* README* \ + $PKG12/usr/doc/gcc-${VERSION}/gcc/rust +) + mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libgfortran ( cd libgfortran || exit 0 if [ -r ChangeLog ]; then @@ -334,17 +355,10 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 ( mkdir gcc.build.lnx cd gcc.build.lnx - # I think it's incorrect to include this option (as it'll end up set - # to i586 on x86 platforms), and we want to tune the binary structure - # for i686, as that's where almost all of the optimization speedups - # are to be found. - # Correct me if my take on this is wrong. - # --with-cpu=$ARCH - - if [ "$ARCH" != "x86_64" ]; then - GCC_ARCHOPTS="--with-arch=$ARCH" + if [ "$ARCH" = "x86_64" ]; then + GCC_ARCHOPTS="--with-arch=x86-64" else - GCC_ARCHOPTS="--disable-multilib" + GCC_ARCHOPTS="--with-arch=$ARCH" fi CFLAGS="$SLKCFLAGS" \ @@ -355,10 +369,9 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 --infodir=/usr/info \ --enable-shared \ --enable-bootstrap \ - --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++ \ + --enable-languages=${LANGS} \ --enable-threads=posix \ --enable-checking=release \ - --enable-objc-gc \ --with-system-zlib \ --enable-libstdcxx-dual-abi \ --with-default-libstdcxx-abi=new \ @@ -366,6 +379,7 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 --disable-libunwind-exceptions \ --enable-__cxa_atexit \ --disable-libssp \ + --enable-gnu-indirect-function \ --enable-gnu-unique-object \ --enable-plugin \ --enable-lto \ @@ -378,6 +392,7 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 --disable-gtktest \ --enable-clocale=gnu \ $GCC_ARCHOPTS \ + $MULTILIB \ --target=${TARGET} \ --build=${TARGET} \ --host=${TARGET} || exit 1 @@ -415,8 +430,9 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 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 + # Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory. + # This is needed only for x86_64 + --disable-multilib. + if [ "$ARCH" = "x86_64" -a "$MULTILIB" = "--disable-multilib" ]; then sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \ $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs fi @@ -482,17 +498,8 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 # keep a log: ) 2>&1 | tee gcc.build.log -# Filter all .la files (thanks much to Mark Post for the sed script): -( cd $PKG1 - for file in $(find . -type f -name "*.la") ; do - cat $file | sed -e 's%-L/gcc-[[:graph:]]* % %g' > $TMP/tmp-la-file - cat $TMP/tmp-la-file > $file - done - rm $TMP/tmp-la-file -) - -# Don't ship .la files in /{,usr/}lib${LIBDIRSUFFIX}: -rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la +# Don't ship any .la files: +find $PKG1 -name "*.la" -exec rm -f "{}" \; # Strip bloated binaries and libraries: ( cd $PKG1 @@ -504,6 +511,13 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) +# Will we need to install multilib files? +if [ "$ARCH" = "x86_64" -a "$MULTILIB" = "--enable-multilib" ]; then + INSTALL_MULTILIB="YES" +else + INSTALL_MULTILIB="NO" +fi + # OK, time to split the big package where needed: # gcc-g++: @@ -512,8 +526,6 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la mv $PKG1/usr/bin/*++* usr/bin mkdir -p usr/include mv $PKG1/usr/include/c++ usr/include - mkdir -p usr/lib${LIBDIRSUFFIX} - mv $PKG1/usr/lib${LIBDIRSUFFIX}/*++* usr/lib${LIBDIRSUFFIX} mkdir -p usr/libexec/gcc/$TARGET/$VERSION mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1plus usr/libexec/gcc/$TARGET/$VERSION/cc1plus mkdir -p usr/man/man1 @@ -522,6 +534,17 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la mv $PKG1/usr/share/gdb usr/share mkdir -p usr/share/gcc-$VERSION/python mv $PKG1/usr/share/gcc-$VERSION/python/libstdcxx usr/share/gcc-$VERSION/python + if [ -d $PKG2/usr/include/c++/$VERSION/i686-slackware-linux -a ! -e $PKG2/usr/include/c++/$VERSION/i586-slackware-linux ]; then + # This symlink will ease the headaches associated with changing our target: + ln -sf i686-slackware-linux $PKG2/usr/include/c++/$VERSION/i586-slackware-linux + fi + # Libraries: + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/*++* usr/lib${LIBDIRSUFFIX} + if [ "$INSTALL_MULTILIB" = "YES" ]; then + mkdir -p usr/lib + mv $PKG1/usr/lib/*++* usr/lib + fi ) # gcc-gfortran: @@ -534,16 +557,24 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la ( cd usr/bin ; ln -sf gfortran-gcc-${VERSION} fortran ) mkdir -p usr/info mv $PKG1/usr/info/gfortran* usr/info - mkdir -p usr/lib${LIBDIRSUFFIX} - mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgfortran* usr/lib${LIBDIRSUFFIX} - mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION - mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/finclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION - mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/libgfortran* usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION mkdir -p usr/libexec/gcc/$TARGET/$VERSION mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/f951 usr/libexec/gcc/$TARGET/$VERSION/f951 mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/libgfortran* usr/libexec/gcc/$TARGET/$VERSION mkdir -p usr/man/man1 mv $PKG1/usr/man/man1/gfortran* usr/man/man1 + # Libraries: + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgfortran* usr/lib${LIBDIRSUFFIX} + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/finclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/libgfortran* usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + if [ "$INSTALL_MULTILIB" = "YES" ]; then + mkdir -p usr/lib + mv $PKG1/usr/lib/libgfortran* usr/lib + mkdir -p usr/lib/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/finclude usr/lib/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/libgfortran* usr/lib/gcc/$TARGET/$VERSION + fi ) # gcc-gnat: @@ -555,31 +586,41 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la mv $PKG1/usr/info/gnat* usr/info mkdir -p usr/libexec/gcc/$TARGET/$VERSION mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/gnat1 usr/libexec/gcc/$TARGET/$VERSION + # Libraries: mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adainclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adalib usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION + if [ "$INSTALL_MULTILIB" = "YES" ]; then + mkdir -p usr/lib/gcc/$TARGET/$VERSION + mkdir -p usr/lib64/gcc/$TARGET/$VERSION/32 + mv $PKG1/usr/lib64/gcc/$TARGET/$VERSION/32/adainclude usr/lib/gcc/$TARGET/$VERSION + ln -sf /usr/lib/gcc/$TARGET/$VERSION/adainclude usr/lib64/gcc/$TARGET/$VERSION/32/adainclude + mv $PKG1/usr/lib64/gcc/$TARGET/$VERSION/32/adalib usr/lib/gcc/$TARGET/$VERSION + ln -sf /usr/lib/gcc/$TARGET/$VERSION/adalib usr/lib64/gcc/$TARGET/$VERSION/32/adalib + fi ) # gcc-objc: ( cd $PKG6 - mkdir -p usr/lib${LIBDIRSUFFIX} - mv $PKG1/usr/lib${LIBDIRSUFFIX}/libobjc* usr/lib${LIBDIRSUFFIX} mkdir -p usr/libexec/gcc/$TARGET/$VERSION mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1obj usr/libexec/gcc/$TARGET/$VERSION mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1objplus usr/libexec/gcc/$TARGET/$VERSION mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/objc usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/cc1objplus usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + # Libraries: + # As a rule, we don't package static libraries. + rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libobjc.a + mkdir -p usr/lib${LIBDIRSUFFIX} + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libobjc* usr/lib${LIBDIRSUFFIX} + if [ "$INSTALL_MULTILIB" = "YES" ]; then + # As a rule, we don't package static libraries. + rm -f $PKG1/usr/lib/libobjc.a + mkdir -p usr/lib + mv $PKG1/usr/lib/libobjc* usr/lib + fi ) -## NOTE: Thought about this, because the precompiled headers are so large. -## Probably easier to keep everything together, though. -## gcc-g++-gch (precompiled c++ headers) -#( cd $PKG7 -# mkdir -p usr/include/c++/$VERSION/$TARGET/bits -# 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 @@ -589,47 +630,71 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/{cgo,go1} usr/libexec/gcc/$TARGET/$VERSION mkdir -p usr/info mv $PKG1/usr/info/gccgo.info.gz usr/info + mkdir -p usr/man/man1 + mv $PKG1/usr/man/man1/gccgo.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/go.1.gz usr/man/man1 + mv $PKG1/usr/man/man1/gofmt.1.gz usr/man/man1 + # Libraries: mkdir -p usr/lib${LIBDIRSUFFIX} mv $PKG1/usr/lib${LIBDIRSUFFIX}/go usr/lib${LIBDIRSUFFIX} - if [ -r $PKG1/usr/lib${LIBDIRSUFFIX}/libgo.la ]; then - mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgo.la usr/lib${LIBDIRSUFFIX} - fi mv $PKG1/usr/lib${LIBDIRSUFFIX}/{libgo.so*,libgobegin.a,libgolibbegin.a} usr/lib${LIBDIRSUFFIX} || exit 1 # Don't package the (bloated) libgo.a. As a rule, we don't package static libraries. rm -f $PKG1/usr/lib${LIBDIRSUFFIX}/libgo.a - mkdir -p usr/man/man1 - mv $PKG1/usr/man/man1/gccgo.1.gz usr/man/man1 - mv $PKG1/usr/man/man1/go.1.gz usr/man/man1 - mv $PKG1/usr/man/man1/gofmt.1.gz usr/man/man1 + if [ "$INSTALL_MULTILIB" = "YES" ]; then + mkdir -p usr/lib + mv $PKG1/usr/lib/go usr/lib + mv $PKG1/usr/lib/{libgo.so*,libgobegin.a,libgolibbegin.a} usr/lib || exit 1 + # Don't package the (bloated) libgo.a. As a rule, we don't package static libraries. + rm -f $PKG1/usr/lib/libgo.a + fi ) || exit 1 # gcc-gdc: ( cd $PKG10 mkdir -p usr/bin mv $PKG1/usr/bin/gdc $PKG1/usr/bin/*-gdc usr/bin + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/d21 usr/libexec/gcc/$TARGET/$VERSION + mkdir -p usr/info + mv $PKG1/usr/info/gdc.info.gz usr/info + mkdir -p usr/man/man1 + mv $PKG1/usr/man/man1/gdc.1.gz usr/man/man1 + # Libraries: mkdir -p usr/lib${LIBDIRSUFFIX} mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgdruntime* usr/lib${LIBDIRSUFFIX} mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgphobos* usr/lib${LIBDIRSUFFIX} + mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/d usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include ## COMMENTED OUT: defaults to static linking and that default does not ## seem to be easlity changed... ## Don't package the (bloated) libgphobos.a or libgdruntime.a. ## As a rule, we don't package static libraries. #rm -f usr/lib${LIBDIRSUFFIX}/libgphobos.a #rm -f usr/lib${LIBDIRSUFFIX}/libgdruntime.a - mkdir -p usr/libexec/gcc/$TARGET/$VERSION - mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/d21 usr/libexec/gcc/$TARGET/$VERSION - mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include - mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include/d usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include - mkdir -p usr/info - mv $PKG1/usr/info/gdc.info.gz usr/info - mkdir -p usr/man/man1 - mv $PKG1/usr/man/man1/gdc.1.gz usr/man/man1 -) || exit 1 + if [ "$INSTALL_MULTILIB" = "YES" ]; then + mkdir -p usr/lib + mv $PKG1/usr/lib/libgdruntime* usr/lib + mv $PKG1/usr/lib/libgphobos* usr/lib + mkdir -p usr/lib/gcc/$TARGET/$VERSION/include + mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/include/d usr/lib/gcc/$TARGET/$VERSION/include + ## COMMENTED OUT: defaults to static linking and that default does not + ## seem to be easlity changed... + ## Don't package the (bloated) libgphobos.a or libgdruntime.a. + ## As a rule, we don't package static libraries. + #rm -f usr/lib/libgphobos.a + #rm -f usr/lib/libgdruntime.a + fi +) # gcc-gm2: ( cd $PKG11 mkdir -p usr/bin mv $PKG1/usr/bin/gm2 $PKG1/usr/bin/*-gm2 usr/bin + mkdir -p usr/libexec/gcc/$TARGET/$VERSION + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1gm2 usr/libexec/gcc/$TARGET/$VERSION + mkdir -p usr/man/man1 + mv $PKG1/usr/man/man1/gm2.1.gz usr/man/man1 + # Libraries: mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/plugin mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/m2 usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/plugin/m2* usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/plugin @@ -640,29 +705,47 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la rm -f $(basename $library .so).a done ) + if [ "$INSTALL_MULTILIB" = "YES" ]; then + mkdir -p usr/lib/gcc/$TARGET/$VERSION/plugin + mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/32/m2 usr/lib/gcc/$TARGET/$VERSION + mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/plugin/m2* usr/lib/gcc/$TARGET/$VERSION/plugin + mv $PKG1/usr/lib/libm2* usr/lib + # As a rule, we don't package static libraries: + ( cd usr/lib + for library in libm2*.so ; do + rm -f $(basename $library .so).a + done + ) + fi +) + +# gcc-rust: +( cd $PKG12 + mkdir -p usr/bin + mv $PKG1/usr/bin/gccrs $PKG1/usr/bin/*-gccrs usr/bin mkdir -p usr/libexec/gcc/$TARGET/$VERSION - mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1gm2 usr/libexec/gcc/$TARGET/$VERSION - mkdir -p usr/man/man1 - mv $PKG1/usr/man/man1/gm2.1.gz usr/man/man1 + mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/crab1 usr/libexec/gcc/$TARGET/$VERSION ) || exit 1 # Generate packages: ( cd $PKG1 - makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG2 - makepkg -l y -c n $TMP/gcc-g++-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-g++-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG3 - makepkg -l y -c n $TMP/gcc-gfortran-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-gfortran-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG4 - makepkg -l y -c n $TMP/gcc-gnat-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-gnat-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG6 - makepkg -l y -c n $TMP/gcc-objc-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-objc-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG8 - makepkg -l y -c n $TMP/gcc-go-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-go-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG10 - makepkg -l y -c n $TMP/gcc-gdc-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-gdc-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) ( cd $PKG11 - makepkg -l y -c n $TMP/gcc-gm2-$VERSION-$ARCH-$BUILD.txz ) + makepkg -l y -c n $TMP/gcc-gm2-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) +( cd $PKG12 + makepkg -l y -c n $TMP/gcc-rust-${VERSION}${VERTAG}-$ARCH-${BUILD}${TAG}.txz ) echo echo "Slackware GCC package build complete!" |