--- a/gcc.SlackBuild 2021-08-25 11:09:51.000000000 +0300 +++ b/gcc.SlackBuild 2022-01-18 21:38:52.908852553 +0200 @@ -116,6 +116,14 @@ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" LIBDIRSUFFIX="" LIB_ARCH=armv7hl +elif [ "$ARCH" = "aarch64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + LIB_ARCH=$ARCH +elif [ "$ARCH" = "riscv64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + LIB_ARCH=$ARCH else SLKCFLAGS="-O2" LIBDIRSUFFIX="" @@ -144,7 +152,7 @@ PKG6=$TMP/package-gcc-objc #PKG7=$TMP/package-gcc-g++-gch PKG8=$TMP/package-gcc-go -PKG9=$TMP/package-gcc-brig +#PKG9=$TMP/package-gcc-brig PKG10=$TMP/package-gcc-gdc # Clear the build locations: @@ -160,7 +168,7 @@ 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-brig > $PKG9/install/slack-desc cat $CWD/slack-desc.gcc-gdc > $PKG10/install/slack-desc cd gcc-$SRCVER || exit 1 @@ -178,6 +186,12 @@ # https://github.com/golang/go/issues/47771 zcat $CWD/patches/7185690.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 +# Redefine dynamic linker for aarch64 from /lib to /lib64: +xzcat $CWD/redefine-dynamic-linker-for-aarch64.patch.xz | patch -p1 --verbose || exit 1 + +# Redefine dynamic linker for riscv64 from /lib to /lib64: +xzcat $CWD/redefine-dynamic-linker-for-riscv64.patch.xz | patch -p1 --verbose || exit 1 + # Fix perms/owners: chown -R root:root . find . \ @@ -266,13 +280,13 @@ $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 $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 @@ -345,6 +359,9 @@ else GCC_ARCHOPTS="--disable-multilib" fi + + [[ "$ARCH" == "aarch64" ]] && GCC_ARCHOPTS="--enable-multilib" + [[ "$ARCH" == "riscv64" ]] && GCC_ARCHOPTS="--disable-multilib --with-slibdir=/lib$LIBDIRSUFFIX" CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ @@ -354,7 +371,7 @@ --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,objc,obj-c++ \ --enable-threads=posix \ --enable-checking=release \ --enable-objc-gc \ @@ -415,7 +432,7 @@ fi # Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory: - if [ "$ARCH" = "x86_64" ]; then + if [ "${LIBDIRSUFFIX}" = "64" ]; then sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \ $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${TARGET}/${VERSION}/specs fi @@ -603,16 +620,16 @@ ) || 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 +#( 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 @@ -650,8 +667,8 @@ 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 $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 )