diff options
Diffstat (limited to 'source/d/gcc/gcc.SlackBuild')
-rwxr-xr-x | source/d/gcc/gcc.SlackBuild | 104 |
1 files changed, 56 insertions, 48 deletions
diff --git a/source/d/gcc/gcc.SlackBuild b/source/d/gcc/gcc.SlackBuild index 6e5e6b321..f4c17cdcc 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 Patrick J. Volkerding, Sebeka, MN, 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 # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -57,7 +57,7 @@ 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:-2} +BUILD=${BUILD:-1} # How many jobs to run in parallel: NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -66,7 +66,7 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} if [ -z "$ARCH" ]; then case "$(uname -m)" in i?86) ARCH=i586 ;; - arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + 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) ;; esac @@ -83,8 +83,8 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "gcc-gnat-$VERSION-$ARCH-$BUILD.txz" echo "gcc-objc-$VERSION-$ARCH-$BUILD.txz" echo "gcc-go-$VERSION-$ARCH-$BUILD.txz" - echo "gcc-brig-$VERSION-$ARCH-$BUILD.txz" echo "gcc-gdc-$VERSION-$ARCH-$BUILD.txz" + echo "gcc-gm2-$VERSION-$ARCH-$BUILD.txz" exit 0 fi @@ -133,7 +133,8 @@ TMP=${TMP:-/tmp} # Extract the source code: cd $TMP rm -rf gcc-$SRCVER -tar xvf $CWD/gcc-$SRCVER.tar.?z || exit 1 +echo "Extracting $CWD/gcc-$SRCVER.tar.?z..." +tar xf $CWD/gcc-$SRCVER.tar.?z || exit 1 # This is the main DESTDIR target: PKG1=$TMP/package-gcc @@ -142,41 +143,38 @@ PKG2=$TMP/package-gcc-g++ PKG3=$TMP/package-gcc-gfortran PKG4=$TMP/package-gcc-gnat PKG6=$TMP/package-gcc-objc -#PKG7=$TMP/package-gcc-g++-gch PKG8=$TMP/package-gcc-go -PKG9=$TMP/package-gcc-brig PKG10=$TMP/package-gcc-gdc +PKG11=$TMP/package-gcc-gm2 # Clear the build locations: -rm -rf $PKG{1,2,3,4,6,8,9,10} -mkdir -p $PKG{1,2,3,4,6,8,9,10}/usr/doc/gcc-$VERSION +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 # Insert package descriptions: -mkdir -p $PKG{1,2,3,4,6,8,9,10}/install +mkdir -p $PKG{1,2,3,4,6,8,9,10,11}/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 cat $CWD/slack-desc.gcc-gnat > $PKG4/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 -cat $CWD/slack-desc.gcc-brig > $PKG9/install/slack-desc cat $CWD/slack-desc.gcc-gdc > $PKG10/install/slack-desc +cat $CWD/slack-desc.gcc-gm2 > $PKG11/install/slack-desc cd gcc-$SRCVER || exit 1 -# Smite the fixincludes: -zcat $CWD/patches/gcc-no_fixincludes.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 - -# Fix a gfortran bug: -zcat $CWD/patches/gfortran.deferred-shape-vs-assumed-shape.patch.gz | patch -p0 --verbose --backup --suffix=.orig || exit 1 - -# Fix regressions in 10.3.0 (and presumably 11.1.0 since they still apply cleanly): -zcat $CWD/patches/PR100102-2.a1b3484a8e6c53c8084723e3f1738d402374198e.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 - -# Fix compiler error in gcc-go -# https://github.com/golang/go/issues/47771 -zcat $CWD/patches/7185690.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Apply any required patches: +for patch in $CWD/patches/*.patch $CWD/patches/*.diff ; do + if [ -r "$patch" ]; then + cat $patch | patch -p1 --verbose --backup --suffix=.orig || exit 1 + fi +done +for patch in $CWD/patches/*.patch.gz $CWD/patches/*.diff.gz ; do + if [ -r "$patch" ]; then + zcat $patch | patch -p1 --verbose --backup --suffix=.orig || exit 1 + fi +done # Fix perms/owners: chown -R root:root . @@ -266,14 +264,6 @@ mkdir -p $PKG8/usr/doc/gcc-${VERSION}/gcc/go $PKG8/usr/doc/gcc-${VERSION}/gcc/go ) -mkdir -p $PKG9/usr/doc/gcc-${VERSION}/gcc/brig -( cd gcc/brig || exit 0 - if [ -r ChangeLog ]; then - cat ChangeLog | head -n 1000 > $PKG9/usr/doc/gcc-${VERSION}/gcc/brig/ChangeLog - touch -r ChangeLog $PKG9/usr/doc/gcc-${VERSION}/gcc/brig/ChangeLog - fi -) - mkdir -p $PKG10/usr/doc/gcc-${VERSION}/gcc/d ( cd gcc/d || exit 0 if [ -r ChangeLog ]; then @@ -282,6 +272,17 @@ mkdir -p $PKG10/usr/doc/gcc-${VERSION}/gcc/d fi ) +mkdir -p $PKG11/usr/doc/gcc-${VERSION}/gcc/m2 +( cd gcc/m2 || exit 0 + if [ -r ChangeLog ]; then + cat ChangeLog | head -n 1000 > $PKG11/usr/doc/gcc-${VERSION}/gcc/m2/ChangeLog + touch -r ChangeLog $PKG11/usr/doc/gcc-${VERSION}/gcc/m2/ChangeLog + fi + cp -a \ + COPYING* NEWS* README* \ + $PKG11/usr/doc/gcc-${VERSION}/gcc/m2 +) + mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libgfortran ( cd libgfortran || exit 0 if [ -r ChangeLog ]; then @@ -354,7 +355,7 @@ mkdir -p $PKG2/usr/doc/gcc-${VERSION}/libstdc++-v3 --infodir=/usr/info \ --enable-shared \ --enable-bootstrap \ - --enable-languages=ada,brig,c,c++,d,fortran,go,lto,objc,obj-c++ \ + --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++ \ --enable-threads=posix \ --enable-checking=release \ --enable-objc-gc \ @@ -602,18 +603,6 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la mv $PKG1/usr/man/man1/gofmt.1.gz usr/man/man1 ) || exit 1 -# gcc-brig: -( cd $PKG9 - mkdir -p usr/bin - mv $PKG1/usr/bin/*brig* usr/bin - mkdir -p usr/lib${LIBDIRSUFFIX} - mv $PKG1/usr/lib${LIBDIRSUFFIX}/libhsail* usr/lib${LIBDIRSUFFIX} - mkdir -p usr/libexec/gcc/$TARGET/$VERSION - mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/brig1 usr/libexec/gcc/$TARGET/$VERSION - mkdir -p usr/man/man1 - mv $PKG1/usr/man/man1/gccbrig.1.gz usr/man/man1 -) || exit 1 - # gcc-gdc: ( cd $PKG10 mkdir -p usr/bin @@ -637,6 +626,26 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la mv $PKG1/usr/man/man1/gdc.1.gz usr/man/man1 ) || exit 1 +# gcc-gm2: +( cd $PKG11 + mkdir -p usr/bin + mv $PKG1/usr/bin/gm2 $PKG1/usr/bin/*-gm2 usr/bin + 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 + mv $PKG1/usr/lib${LIBDIRSUFFIX}/libm2* usr/lib${LIBDIRSUFFIX} + # As a rule, we don't package static libraries: + ( cd usr/lib${LIBDIRSUFFIX} + for library in libm2*.so ; do + rm -f $(basename $library .so).a + done + ) + 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 +) || exit 1 + # Generate packages: ( cd $PKG1 makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz ) @@ -650,12 +659,11 @@ rm -f $PKG1/{,usr/}lib${LIBDIRSUFFIX}/*.la makepkg -l y -c n $TMP/gcc-objc-$VERSION-$ARCH-$BUILD.txz ) ( cd $PKG8 makepkg -l y -c n $TMP/gcc-go-$VERSION-$ARCH-$BUILD.txz ) -( cd $PKG9 - makepkg -l y -c n $TMP/gcc-brig-$VERSION-$ARCH-$BUILD.txz ) ( cd $PKG10 makepkg -l y -c n $TMP/gcc-gdc-$VERSION-$ARCH-$BUILD.txz ) +( cd $PKG11 + makepkg -l y -c n $TMP/gcc-gm2-$VERSION-$ARCH-$BUILD.txz ) echo echo "Slackware GCC package build complete!" echo - |