diff --git a/test/testdata/aportgen/aports/main/gcc/APKBUILD b/test/testdata/aportgen/aports/main/gcc/APKBUILD index 1ae9418f..8ff16c50 100644 --- a/test/testdata/aportgen/aports/main/gcc/APKBUILD +++ b/test/testdata/aportgen/aports/main/gcc/APKBUILD @@ -1,40 +1,45 @@ -# Maintainer: Natanael Copa +# Contributor: Natanael Copa +# Contributor: Sören Tempel +# Maintainer: Ariadne Conill pkgname=gcc -pkgver=8.2.0 +_pkgbase=12.1.1 +pkgver=12.1.1_git20220630 [ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2" [ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" [ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" pkgname="$pkgname$_target" -pkgrel=1 +pkgrel=5 pkgdesc="The GNU Compiler Collection" -url="http://gcc.gnu.org" +url="https://gcc.gnu.org" arch="all" -license="GPL LGPL" +license="GPL-2.0-or-later LGPL-2.1-or-later" _gccrel=$pkgver-r$pkgrel -depends="binutils$_target isl" -makedepends_build="gcc$_cross g++$_cross paxmark bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev" -makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev" +depends="binutils$_target" +makedepends_build="gcc$_cross g++$_cross bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev" +makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev libucontext-dev" subpackages=" " [ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target" replaces="libstdc++ binutils" -: ${LANG_CXX:=true} -: ${LANG_OBJC:=true} -: ${LANG_GO:=true} -: ${LANG_FORTRAN:=true} -: ${LANG_ADA:=true} +: "${LANG_CXX:=true}" +: "${LANG_D:=true}" +: "${LANG_OBJC:=true}" +: "${LANG_GO:=true}" +: "${LANG_FORTRAN:=true}" +: "${LANG_ADA:=true}" +: "${LANG_JIT:=true}" -LIBGOMP=true -LIBGCC=true -LIBATOMIC=true -LIBITM=true +_libgomp=true +_libgcc=true +_libatomic=true +_libitm=true if [ "$CHOST" != "$CTARGET" ]; then if [ "$BOOTSTRAP" = nolibc ]; then LANG_CXX=false LANG_ADA=false - LIBGCC=false + _libgcc=false _builddir="$srcdir/build-cross-pass2" else _builddir="$srcdir/build-cross-final" @@ -42,9 +47,11 @@ if [ "$CHOST" != "$CTARGET" ]; then LANG_OBJC=false LANG_GO=false LANG_FORTRAN=false - LIBGOMP=false - LIBATOMIC=false - LIBITM=false + LANG_D=false + LANG_JIT=false + _libgomp=false + _libatomic=false + _libitm=false # reset target flags (should be set in crosscreate abuild) # fixup flags. seems gcc treats CPPFLAGS as global without @@ -78,6 +85,8 @@ elif [ "$CBUILD" != "$CHOST" ]; then LANG_OBJC=false LANG_GO=false LANG_FORTRAN=false + LANG_D=false + LANG_JIT=false STRIP_FOR_TARGET=${CROSS_COMPILE}strip _builddir="$srcdir/build-cross-native" @@ -86,37 +95,63 @@ else _builddir="$srcdir/build" fi -# Go needs {set,make,swap}context, unimplemented in musl -[ "$CTARGET_LIBC" = musl ] && LANG_GO=false +case "$CARCH" in +# GDC hasn't been ported to PowerPC +# See libphobos/configure.tgt in GCC sources for supported targets +# riscv fails with: error: static assert "unimplemented" +ppc64le|riscv64) LANG_D=false ;; +# GDC does currently not work on 32-bit musl architectures. +# This is a known upstream issue. +# See: https://github.com/dlang/druntime/pull/3383 +armhf|armv7|x86) LANG_D=false ;; +esac # libitm has TEXTRELs in ARM build, so disable for now case "$CTARGET_ARCH" in -arm*) LIBITM=false ;; -mips*) LIBITM=false ;; +arm*) _libitm=false ;; +mips*) _libitm=false ;; +riscv64) _libitm=false ;; +esac + +# Internal libffi fails to build on MIPS at the moment, need to +# investigate further. We disable LANG_GO on mips64 as it requires +# the internal libffi. +case "$CTARGET_ARCH" in +mips*) LANG_GO=false ;; esac # Fortran uses libquadmath if toolchain has __float128 # currently on x86, x86_64 and ia64 -LIBQUADMATH=$LANG_FORTRAN +_libquadmath=$LANG_FORTRAN case "$CTARGET_ARCH" in -x86 | x86_64) LIBQUADMATH=$LANG_FORTRAN ;; -*) LIBQUADMATH=false ;; +x86 | x86_64) _libquadmath=$LANG_FORTRAN ;; +*) _libquadmath=false ;; esac # libatomic is a dependency for openvswitch -$LIBATOMIC && subpackages="$subpackages libatomic::$CTARGET_ARCH" -$LIBGCC && subpackages="$subpackages libgcc::$CTARGET_ARCH" -$LIBQUADMATH && subpackages="$subpackages libquadmath::$CTARGET_ARCH" -if $LIBGOMP; then +$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH" +$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH" +$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH" +if $_libgomp; then depends="$depends libgomp=$_gccrel" subpackages="$subpackages libgomp::$CTARGET_ARCH" fi +case "$CARCH" in +riscv64) +LANG_ADA=false;; +esac + _languages=c if $LANG_CXX; then - subpackages="$subpackages libstdc++:libcxx:$CTARGET_ARCH g++$_target:gpp" + subpackages="$subpackages libstdc++:libcxx:$CTARGET_ARCH libstdc++-dev:libcxx_dev:$CTARGET_ARCH g++$_target:gpp" _languages="$_languages,c++" fi +if $LANG_D; then + subpackages="$subpackages libgphobos::$CTARGET_ARCH gcc-gdc$_target:gdc" + _languages="$_languages,d" + makedepends_build="$makedepends_build libucontext-dev gcc-gdc-bootstrap" +fi if $LANG_OBJC; then subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc" _languages="$_languages,objc" @@ -130,56 +165,86 @@ if $LANG_FORTRAN; then _languages="$_languages,fortran" fi if $LANG_ADA; then - subpackages="$subpackages libgnat::$CTARGET_ARCH gcc-gnat$_target:gnat" + subpackages="$subpackages gcc-gnat$_target:gnat" _languages="$_languages,ada" - makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross" + if [ "$CBUILD" = "$CTARGET" ]; then + makedepends_build="$makedepends_build gcc-gnat-bootstrap" + subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH libgnat::$CTARGET_ARCH" + else + subpackages="$subpackages libgnat::$CTARGET_ARCH" + makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross" + fi +fi +if $LANG_JIT; then + subpackages="$subpackages libgccjit:jit libgccjit-dev:jitdev" fi makedepends="$makedepends_build $makedepends_host" -source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz - 002_all_default-relro.patch - 003_all_default-fortify-source.patch - 005_all_default-as-needed.patch - gcc-as-needed-gold.patch - gcc-as-needed-push-pop.patch - 011_all_default-warn-format-security.patch - 012_all_default-warn-trampolines.patch - 013_all_default-ssp-fix.patch - 020_all_msgfmt-libstdc++-link.patch - 050_all_libiberty-asprintf.patch - 051_all_libiberty-pic.patch - 053_all_libitm-no-fortify-source.patch - 090_all_pr55930-dependency-tracking.patch - 0003-gcc-poison-system-directories.patch - - 203-libgcc_s.patch - 205-nopie.patch - 0002-posix_memalign.patch - 0008-s390x-muslldso.patch - 0010-ldbl128-config.patch - 0012-static-pie.patch - - libgcc-always-build-gcceh.a.patch - gcc-4.9-musl-fortify.patch - gcc-6.1-musl-libssp.patch - gcc-pure64.patch - - fix-cxxflags-passing.patch - ada-shared.patch - ada-musl.patch - libgnarl-musl.patch - - 320-libffi-gnulinux.patch - - gcc-pure64-mips.patch +# when using upstream releases, use this URI template +# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz +# +# right now, we are using a git snapshot. +# +# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches, +# so that they can be properly tracked and easily rebased if needed. +source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz + 0001-posix_memalign.patch + 0002-gcc-poison-system-directories.patch + 0003-specs-turn-on-Wl-z-now-by-default.patch + 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch + 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch + 0006-Enable-Wformat-and-Wformat-security-by-default.patch + 0007-Enable-Wtrampolines-by-default.patch + 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch + 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch + 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch + 0011-libiberty-copy-PIC-objects-during-build-process.patch + 0012-libitm-disable-FORTIFY.patch + 0013-libgcc_s.patch + 0014-nopie.patch + 0015-dlang-use-libucontext-on-mips64.patch + 0016-ada-fix-shared-linking.patch + 0017-build-fix-CXXFLAGS_FOR_BUILD-passing.patch + 0018-add-fortify-headers-paths.patch + 0019-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch + 0020-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch + 0021-mips64-disable-multilib-support.patch + 0022-aarch64-disable-multilib-support.patch + 0023-s390x-disable-multilib-support.patch + 0024-ppc64-le-disable-multilib-support.patch + 0025-x86_64-disable-multilib-support.patch + 0026-riscv-disable-multilib-support.patch + 0027-always-build-libgcc_eh.a.patch + 0028-ada-libgnarl-compatibility-for-musl.patch + 0029-ada-musl-support-fixes.patch + 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch + 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch + 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch + 0033-gcc-go-link-to-libucontext.patch + 0034-Use-generic-errstr.go-implementation-on-musl.patch + 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch + 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch + 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch + 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch + 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch + 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch + 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch + 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch + 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch + 0045-druntime-link-against-libucontext-on-all-platforms.patch + 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch + 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch + 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch + 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch + 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch + 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch + 0053-libgo-make-match.sh-POSIX-shell-compatible.patch " -# gcc-4.8-build-args.patch - # we build out-of-tree -_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver} -_gcclibdir=/usr/lib/gcc/${CTARGET}/$pkgver -_gcclibexec=/usr/libexec/gcc/${CTARGET}/$pkgver +_gccdir="$srcdir"/gcc-$pkgver +_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}" +_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}" prepare() { cd "$_gccdir" @@ -202,7 +267,7 @@ prepare() { return 1 fi - echo ${pkgver} > gcc/BASE-VER + echo ${_pkgbase:-$pkgver} > gcc/BASE-VER } build() { @@ -211,6 +276,7 @@ build() { local _cross_configure= local _bootstrap_configure= local _symvers= + local _jit_configure= cd "$_gccdir" @@ -228,6 +294,7 @@ build() { i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";; i586-*-*-*) _arch_configure="--with-arch=i586 --with-tune=generic --enable-cld";; s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";; + riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";; esac case "$CTARGET_ARCH" in @@ -254,10 +321,10 @@ build() { *) _bootstrap_configure="--enable-shared --enable-threads --enable-tls" ;; esac - $LIBGOMP || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" - $LIBATOMIC || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" - $LIBITM || _bootstrap_configure="$_bootstrap_configure --disable-libitm" - $LIBQUADMATH || _arch_configure="$_arch_configure --disable-libquadmath" + $_libgomp || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" + $_libatomic || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" + $_libitm || _bootstrap_configure="$_bootstrap_configure --disable-libitm" + $_libquadmath || _arch_configure="$_arch_configure --disable-libquadmath" msg "Building the following:" echo "" @@ -271,78 +338,112 @@ build() { echo " libc_configure=$_libc_configure" echo " cross_configure=$_cross_configure" echo " bootstrap_configure=$_bootstrap_configure" - echo " hash_style_configure=$_hash_style_configure" + echo " hash_style_configure=$_hash_style_configure" echo "" + export CFLAGS="$CFLAGS -O2" + export CXXFLAGS="$CXXFLAGS -O2" + export CPPFLAGS="$CPPFLAGS -O2" + + local version="Alpine $pkgver-r$pkgrel" + local gccconfiguration=" + --prefix=/usr + --mandir=/usr/share/man + --infodir=/usr/share/info + --build=${CBUILD} + --host=${CHOST} + --target=${CTARGET} + --enable-checking=release + --disable-fixed-point + --disable-libstdcxx-pch + --disable-multilib + --disable-nls + --disable-werror + $_symvers + --enable-__cxa_atexit + --enable-default-pie + --enable-default-ssp + --enable-cloog-backend + --enable-languages=$_languages + $_arch_configure + $_libc_configure + $_cross_configure + $_bootstrap_configure + --with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues + --with-system-zlib + $_hash_style_configure + " + mkdir -p "$_builddir" cd "$_builddir" - "$_gccdir"/configure --prefix=/usr \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --build=${CBUILD} \ - --host=${CHOST} \ - --target=${CTARGET} \ - --with-pkgversion="Alpine ${pkgver}" \ - --enable-checking=release \ - --disable-fixed-point \ - --disable-libstdcxx-pch \ - --disable-multilib \ - --disable-nls \ - --disable-werror \ - $_symvers \ - --enable-__cxa_atexit \ - --enable-default-pie \ - --enable-default-ssp \ - --enable-cloog-backend \ - --enable-languages=$_languages \ - $_arch_configure \ - $_libc_configure \ - $_cross_configure \ - $_bootstrap_configure \ - --with-system-zlib \ - $_hash_style_configure + "$_gccdir"/configure $gccconfiguration \ + --with-pkgversion="$version" + + msg "building gcc" make + + # we build gccjit separate to not build all of gcc with --enable-host-shared + # as doing so slows it down a few %, so for some quick if's here we gain + # free performance + if $LANG_JIT; then + mkdir -p "$_builddir"/libgccjit-build + cd "$_builddir"/libgccjit-build + "$_gccdir"/configure $gccconfiguration \ + --disable-bootstrap \ + --enable-host-shared \ + --enable-languages=jit \ + --with-pkgversion="$version" + + msg "building libgccjit" + make all-gcc + fi } package() { cd "$_builddir" - make -j1 DESTDIR="${pkgdir}" install + make DESTDIR="$pkgdir" install ln -s gcc "$pkgdir"/usr/bin/cc - # we don't support gcj -static + if $LANG_JIT; then + make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common + fi + + # we dont support gcj -static # and saving 35MB is not bad. - find "$pkgdir" -name libgtkpeer.a \ - -o -name libgjsmalsa.a -o \ - -o -name libgij.a -o \ - | xargs rm -f + find "$pkgdir" \( -name libgtkpeer.a \ + -o -name libgjsmalsa.a \ + -o -name libgij.a \) \ + -delete # strip debug info from some static libs - ${STRIP_FOR_TARGET} -g `find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + -o -name libgphobos.a -o -name libgdruntime.a \ -o -name libmudflap.a -o -name libmudflapth.a \ -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ - -a -type f` + -a -type f \ + -exec ${STRIP_FOR_TARGET} -g {} + - if $LIBGOMP; then + if $_libgomp; then mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir fi - if $LIBITM; then + if $_libitm; then mv "$pkgdir"/usr/lib/libitm.spec "$pkgdir"/$_gcclibdir fi # remove ffi rm -f "$pkgdir"/usr/lib/libffi* "$pkgdir"/usr/share/man/man3/ffi* - find "$pkgdir" -name 'ffi*.h' | xargs rm -f + find "$pkgdir" -name 'ffi*.h' -delete local gdblib=${_target:+$CTARGET/}lib - for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py" ); do - mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib - mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/ - done - - paxmark -pmrs "$pkgdir"/$_gcclibexec/cc1 + if [ -d "$pkgdir"/usr/$gdblib/ ]; then + for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py"); do + mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib + mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/ + done + fi # move ada runtime libs if $LANG_ADA; then @@ -350,20 +451,26 @@ package() { mv "$i" "$pkgdir"/usr/lib/ ln -s ../../../../${i##*/} $i done + if [ "$CHOST" = "$CTARGET" ]; then + for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do + mv "$i" "$pkgdir"/usr/lib/ + ln -s ../../../../${i##*/} $i + done + fi fi if [ "$CHOST" != "$CTARGET" ]; then # cross-gcc: remove any files that would conflict with the # native gcc package - rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "$pkgdir"/usr/share + rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share # libcc1 does not depend on target, don't ship it rm -rf "$pkgdir"/usr/lib/libcc1.so* # fixup gcc library symlinks to be linker scripts so # linker finds the libs from relocated sysroot - for so in "$pkgdir"/usr/$CTARGET/lib/*.so; do + for so in "$pkgdir"/usr/"$CTARGET"/lib/*.so; do if [ -h "$so" ]; then - local _real=$(basename $(readlink "$so")) + local _real=$(basename "$(readlink "$so")") rm -f "$so" echo "GROUP ($_real)" > "$so" fi @@ -372,29 +479,33 @@ package() { # add c89/c99 wrapper scripts cat >"$pkgdir"/usr/bin/c89 <<'EOF' #!/bin/sh -fl="-std=c89" +_flavor="-std=c89" for opt; do case "$opt" in - -ansi|-std=c89|-std=iso9899:1990) fl="";; + -ansi|-std=c89|-std=iso9899:1990) _flavor="";; -std=*) echo "$(basename $0) called with non ANSI/ISO C option $opt" >&2 exit 1;; esac done -exec gcc $fl ${1+"$@"} +exec gcc $_flavor ${1+"$@"} EOF cat >"$pkgdir"/usr/bin/c99 <<'EOF' #!/bin/sh -fl="-std=c99" +_flavor="-std=c99" for opt; do case "$opt" in - -std=c99|-std=iso9899:1999) fl="";; + -std=c99|-std=iso9899:1999) _flavor="";; -std=*) echo "$(basename $0) called with non ISO C99 option $opt" >&2 exit 1;; esac done -exec gcc $fl ${1+"$@"} +exec gcc $_flavor ${1+"$@"} EOF chmod 755 "$pkgdir"/usr/bin/c?9 + + # install lto plugin so regular binutils may use it + mkdir -p "$pkgdir"/usr/lib/bfd-plugins + ln -s /$_gcclibexec/liblto_plugin.so "$pkgdir/usr/lib/bfd-plugins/" fi } @@ -411,26 +522,53 @@ libcxx() { pkgdesc="GNU C++ standard runtime library" depends= + if [ "$CHOST" = "$CTARGET" ]; then + # verify that we are using clock_gettime rather than doing direct syscalls + # so we dont break 32 bit arches due to time64. + nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime + fi + mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/ } +libcxx_dev() { + pkgdesc="GNU C++ standard runtime library (development files)" + depends= + replaces="g++" + + amove usr/lib/libstdc++.a \ + usr/lib/libstdc++.so \ + usr/lib/libstdc++fs.a \ + usr/lib/libsupc++.a \ + usr/include/c++ +} + gpp() { pkgdesc="GNU C++ standard library and compiler" - depends="libstdc++=$_gccrel gcc=$_gccrel libc-dev" + depends="libstdc++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev" mkdir -p "$subpkgdir/$_gcclibexec" \ "$subpkgdir"/usr/bin \ "$subpkgdir"/usr/${_target:+$CTARGET/}include \ "$subpkgdir"/usr/${_target:+$CTARGET/}lib \ mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/" - paxmark -pmrs "$subpkgdir/$_gcclibexec/cc1plus" - mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/*++* "$subpkgdir"/usr/${_target:+$CTARGET/}lib/ - mv "$pkgdir"/usr/${_target:+$CTARGET/}include/c++ "$subpkgdir"/usr/${_target:+$CTARGET/}include/ mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/ } +jit() { + pkgdesc="GCC JIT Library" + depends= + amove usr/lib/libgccjit.so* +} + +jitdev() { + pkgdesc="GCC JIT Library (development files)" + depends="libgccjit" + amove usr/include/libgccjit*.h +} + libobjc() { pkgdesc="GNU Objective-C runtime" replaces="objc" @@ -444,8 +582,10 @@ objc() { replaces="gcc" depends="libc-dev gcc=$_gccrel libobjc=$_gccrel" - mkdir -p "$subpkgdir"/$_gcclibdir/include \ + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/$_gcclibdir/include \ "$subpkgdir"/usr/lib + mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/" mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/ mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \ "$subpkgdir"/usr/lib/ @@ -468,6 +608,40 @@ libgomp() { mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/ } +libgphobos() { + pkgdesc="D programming language standard library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/ +} + +gdc() { + pkgdesc="GCC-based D language compiler" + depends="gcc=$_gccrel libgphobos=$_gccrel musl-dev" + depends="$depends libucontext-dev" + provides="gcc-gdc-bootstrap=$_gccrel" + + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/$_gcclibdir/include/d/ \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + # Copy: The installed '.d' files, the static lib, the binary itself + # The shared libs are part of 'libgphobos' so one can run program + # without installing the compiler + mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/" + mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/ + mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/ +} + + libgo() { pkgdesc="Go runtime library for GCC" depends= @@ -478,17 +652,24 @@ libgo() { go() { pkgdesc="Go support for GCC" - depends="gcc=$_gccrel libgo=$_gccrel" + depends="gcc=$_gccrel libgo=$_gccrel !go" mkdir -p "$subpkgdir"/$_gcclibexec \ "$subpkgdir"/usr/lib \ "$subpkgdir"/usr/bin mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/ mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/ mv "$pkgdir"/usr/lib/libgo.a \ "$pkgdir"/usr/lib/libgo.so \ "$pkgdir"/usr/lib/libgobegin.a \ + "$pkgdir"/usr/lib/libgolibbegin.a \ "$subpkgdir"/usr/lib/ } @@ -512,7 +693,7 @@ libquadmath() { gfortran() { pkgdesc="GNU Fortran Compiler" depends="gcc=$_gccrel libgfortran=$_gccrel" - $LIBQUADMATH && depends="$depends libquadmath=$_gccrel" + $_libquadmath && depends="$depends libquadmath=$_gccrel" replaces="gcc" mkdir -p "$subpkgdir"/$_gcclibexec \ @@ -523,11 +704,12 @@ gfortran() { mv "$pkgdir"/usr/lib/libgfortran.a \ "$pkgdir"/usr/lib/libgfortran.so \ "$subpkgdir"/usr/lib/ - if $LIBQUADMATH; then + if $_libquadmath; then mv "$pkgdir"/usr/lib/libquadmath.a \ "$pkgdir"/usr/lib/libquadmath.so \ "$subpkgdir"/usr/lib/ fi + mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/ mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir } @@ -540,9 +722,18 @@ libgnat() { mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/ } +libgnatstatic() { + pkgdesc="GNU Ada static libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/ +} + gnat() { pkgdesc="Ada support for GCC" depends="gcc=$_gccrel" + provides="$pkgname-gnat-bootstrap=$_gccrel" [ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel" mkdir -p "$subpkgdir"/$_gcclibexec \ @@ -553,34 +744,57 @@ gnat() { mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/ } -sha512sums="64898a165f67e136d802a92e7633bf1b06c85266027e52127ea025bf5fc2291b5e858288aac0bdba246e6cdf7c6ec88bc8e0e7f3f6f1985f4297710cafde56ed gcc-8.2.0.tar.xz -e36e95b81489163abd6fe9d58f7867bdca43e61143afacbfb17f4698c0b16ec5fd0061d8fab7b2ae615540bebd721c2e2227f80401b4e7fc253da9da62e6b513 002_all_default-relro.patch -f86466c62b8291fac46f9c250c7ad8fa5ab7b1cce2504442fd07ddc4543665b317ae28951f244e39aba29aeaf3fff252ec4f6a147aa16adb2b7aed747dd89188 003_all_default-fortify-source.patch -02b725b220e540077efef741e9d457f9e004fe53ae642a138e214875d076a60f7c2f27de0ed9a4225db2030fc9c3d2c5b0414c895b9eec0f5f48fad70e2fb029 005_all_default-as-needed.patch -6c9a5068f6eea8a85d297a3555b1d2333ffd4b9ddbfb7560a3e643f8577603871ca123373ef7f96e894225291d88f7bf575c7f8386bcfdd1dabcd7ba12598b65 gcc-as-needed-gold.patch -ab0df1862f1b645634e79b8101326ce53215eba39861a455cd145b81b5267a6a61bc6e76b32d53887a0a48873f7efc23e2c52cc04400c6afd89822f245cdbc77 gcc-as-needed-push-pop.patch -e026bf9f73ee254528423c6cabdfd7794960c567161581b7d4b7c61c45027e12a6efef79662d4288b9cbaecb4798f01af6a5b4a13b766c2d501444ac1846fd43 011_all_default-warn-format-security.patch -37de4cc9061bfe1963e6e6570e1a6bbfd58204bf90e0eef819882599a9a80ea28f3eb815c20c1f173dc25d4bd9971b7c7f7f9512d6f8f91f04de1e1175114d4d 012_all_default-warn-trampolines.patch -38a0fedeac3eebe4a6a957792ba520225cf42663c96a171cd168fdb6c91ffa9a56b80351f8238c5d03b78d3ae2a6539a54481fe4848b4a395e2c87f2ff7adc08 013_all_default-ssp-fix.patch -d35a3ac7e13a4446921a90e1ff3eec1079840c845f9d523c868e24ae21f94cf69ba041de5341ebef96432a6f57598e223381d4286e8fb8baaa25906707f29fbd 020_all_msgfmt-libstdc++-link.patch -840070a3c423e6206aaa6e63e1d9a0fcd6efd53626cd1240a193f0b60aa5d84216acc4a2a4fa8bce74549b07e6a316b01d638f20cea13dc62473491a302fb3d6 050_all_libiberty-asprintf.patch -0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 051_all_libiberty-pic.patch -e7a2eb1b1870e199d6fd753d065781575656fa12baa264f96c5d179689d88c31b8a3f92a5dae96088c05e96aa2bda138364ad7dbcc79e1819a102f192cbb7bab 053_all_libitm-no-fortify-source.patch -4a328d1e1a56c20166307edcfa322068915784d9c08025b7f81cf69714da48fc266b6d34f77b9135c2f10da830d9df408276a1b78d1fd218637c2823506593c2 090_all_pr55930-dependency-tracking.patch -3842bd2be3e53db34e59bfb2bd438b244fc3712055058b9e232e33345f0fab216256b79e364fbac335972dc599a1d74393704f0cd595f3f076dcc10883c85b28 0003-gcc-poison-system-directories.patch -d1c2d7ff7f673375dc7cd84ae9d8515853b5af6390c70bb763412c012101344e4ee1ce155151ce3fb6ba2b80af7ed42d697dbe1bf6fd6e7b2b9087a378c47c37 203-libgcc_s.patch -98473bcaa77903a223ca9b0d2087c0921b287a2816d308cc32c8fe009e6cbf5dd1ae7fba27794ab8d9c09e117fe534413d91a464d1218474fc123ce0adfdc2c1 205-nopie.patch -6d84354e6df96d5ea244eb3bb5f044781796b88040b11c78fb6ee509e5aac19d46e0e92ca836e98e6495d9751f52439833b748efc419e4f5d5301fb549c4dcc9 0002-posix_memalign.patch -7f434a7350c9b06d0ae7cc18a569d813238483afa34b0801d112844a0dfe6164ae36b0416955fd4da7a8caa54672247f319a8ec7ce4b6a97a5f4e17ec083112a 0008-s390x-muslldso.patch -66085c5555e6b91b6874d1782d5a1dc0ab1792889f9400f48cde9483f82b51b9e3a5de1efbba21a19fc5e664334f2188d0c2bc988d42335efa26118b3c85cc7f 0010-ldbl128-config.patch -45d5bc11a89e5af77503ca06eec52d6d84e6fea0be021aaee1bcc39f8dd3c7b4baa4200cfa2b0688faa0f207d005db89c029eff32f362207aa3d2365b2f2363e 0012-static-pie.patch -d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch -600fe5098dc54edaa9808fd5717af9dec058953f9ad37d49cfba1db4f7e9a7a8f02019342f75157fc575946fa693259422184de27b7ecc8386d9f3ecc0f7cc5d gcc-4.9-musl-fortify.patch -dbe0ee917fc7668571722364ab7c806731e3a31e8bfa30b4941b28b16b877d2a32b4a3897ef533399a28f82d43cac9b28e92de0493f0e779046db56584e07fa4 gcc-6.1-musl-libssp.patch -fa62556719449caec6b2b434355bfbcaa5ae55ffe017b3e1f827f66a2aae21b79c571ee7a4ce723ea69169bc3a6447e73650991a200cc372adf2f102677518d7 gcc-pure64.patch -35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch -3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch -50537add461714f44dc6a778e0c6d0e15d6a782591c8aff38d1fb559191ddac2b5ee14a43a3005b389fdf98d2e7468ff4e64c88ba024cf94f9fe0d9854b9e9c8 ada-musl.patch -a1f7750bc7b8b7d916a5dee34fcc736bd4fb249c96538b547d495794e6cfd49356aa3974506a15074b4cb58edd5d7e2868607c902dd003e8c464d5066fd4a575 libgnarl-musl.patch -f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch -86be3338cc9c33089608bc4c5e3b7918c4e500a345c338f361b18c342119a6ed69af5495d72950de7106d760f003528b46ad14795e805f8a3331e206dcb234e3 gcc-pure64-mips.patch" +sha512sums=" +43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz +41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch +531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch +c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch +a54e45bff4484a35d3826435a414d909281453f5605f4081cf3be1f15336cceed93a1d8a54e92e2fa97188623e3030ca1323d7749141e228a7db73795230d86a 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch +ad132ddbd0c33a3983e3de4f74d8fdb8cb1ddf53ef54de0a5c12efb49e42014ed117165d43f396bcf3455ecfe2c8620e0326e73b4160a370a4cc92d213329c34 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch +0b9ce0f130a7b797770f3d58a5200575f20e5663c86c0c5710718b7bffd3416cc2f05861613d9c258428e9541c6e0b9837d01f0c99d383e2c3de0503a988e861 0006-Enable-Wformat-and-Wformat-security-by-default.patch +e7813acc7ead61373c212cefbe53eb020b4c5bd8f0f35ee972e0524060713f911624f5a1a871feada642e1f3f5e48c8508125ca2da09de351d544bedf1d44ada 0007-Enable-Wtrampolines-by-default.patch +d0d0566a11e4828bdd6f53346a9a6b9841f3066d3f4a05ee2b6fe97aeb4552654170e7662318ea18fc777c3e75c88a067097478fc4e880a3f9c134b8a3af2277 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch +f75e63d9d933874f18fb7f55b135c60dfa0377abafa8e0edb91b85d5f00f4f072d0a338ba5d9baec18494211dbbda8068782830dbafbb37068936f76aede270f 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch +afa4daba222a19569588736a8276dc7c12223a7c222f3dd3795dc3f1cd90f40b90518971ae27b358020354f89562c9680ec8b8e24e85e6d4f8e54e79d185359b 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch +79dac82249fb573ec477e1451a33883302eb63a5110853faed117f5021221f2153e2ec845dd5a0043b1bf9f0e5736ef0c89743ff2d771774a281c8b24542803a 0011-libiberty-copy-PIC-objects-during-build-process.patch +b035f85c1703b45d15c1d1ffe7d23400e01625e5d403504911cc92f740b02586447de2a9d66a9f80f12b9c227bc193e2a43942c8af2bdb42cdeff8272bbe6068 0012-libitm-disable-FORTIFY.patch +9fb4d396a9493d2d68fe829ce075ba4c5df148b1d6aaab315a6f8ccbdd70d0e052a5dc50369adc2dab005b4a3becd1504b182faed6e82c86accb95f5bc2b9f50 0013-libgcc_s.patch +f82ac22961d842c9f8e731a601bb255918cc160969888363ad2d83e2ccf08b19114a200d46bcf99d097bf530f470c2b1e71e46828bc1b9fff5469ff945f541d8 0014-nopie.patch +6527dc9d250db48d56cf01e9299461bf22a838ffda96c40d448e18f457b206cec2322275d2d5abbbaf3c6573c5e7eba12724c9691b601f118ff7520e19726373 0015-dlang-use-libucontext-on-mips64.patch +6c3ce0ccd68b19e2c76172d8f24b0747ee0af2b8de7af692f2f699848267d7fc42fec8e5c303102fe05be7e934b56f21eea17ce47c8aca20570590830d88e9b0 0016-ada-fix-shared-linking.patch +7089a96aaec8e0b222cb3fa7301d71bb2e328a24dec33e15ea9e3e7695bcae919308249b9a3be5ea2f3b1f069f9fd1739066f31d12317fcdab0596dba9ca54a4 0017-build-fix-CXXFLAGS_FOR_BUILD-passing.patch +b7ebdeee0b143052fdd6e3efa070ea8621d4fb729312cbc787d618e666b593990a20cd9044a786265970d8e09ec13da03b797009543d0b657b0fe924f2dcaa68 0018-add-fortify-headers-paths.patch +8e682893d6367732ab8c490b915112a68d98855deec3bd8db91dc0d9bf486b8c044b13ee2b95c4806da7ac17c41034e081b7a66861018274cb33fdb2fd6df04a 0019-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch +a14c5f98ade5af8cd6e3a0244752674d9c4f6dadb4260f98f1949bff51ac1211a3f8319e0f933f776e98998d2c7221004f92413f97ccc2e966f8462ed6d33597 0020-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch +28c1d477da79aa212ac79e4b02cf865d8b9c31cec6c42f41b4268e3f3c49bf67fb51e54180abe543a54e550788bb472bfcf1b4bc38d072a792d7403dbbee178a 0021-mips64-disable-multilib-support.patch +0920e31c46bf937b47a0602766f042d45adb71abf332ee84399c665c12298ef115cff945fe26d646b0276bfdfdd04913970e6f1f8784a11c26e15111c854643d 0022-aarch64-disable-multilib-support.patch +e4c6bf7ec40f2798c8e5b40a543aecffd5591a2805546b3b97aaa4fbe4df6ce4330a60973a9ddfbca9890590606d5204e7f653ab2b6e4b2c13feeb595b68e63a 0023-s390x-disable-multilib-support.patch +0e956d793c94283ce5af7fe84bfcbb655585a9573608e9bf497fa7b726e12daa391e44977d0a8c97fb460aba89b1773b91e036b0ee1ef4d6263a3943cb63d9cd 0024-ppc64-le-disable-multilib-support.patch +95917fcb60dbc0a8134db9beb583f3c9ea61128499c214f594c434ec8246641ec41e245ce2d1d9b85ffd40ea0e5764f7a33c5522b2547145814245ac0fa25025 0025-x86_64-disable-multilib-support.patch +b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc00119d9fd64be28218ee874c289ec7430eeef05ab2fcae5e 0026-riscv-disable-multilib-support.patch +674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch +f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch +5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch +74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch +9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch +4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch +0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch +699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch +d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch +ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch +7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch +5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch +570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch +a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch +15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch +25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch +75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch +13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch +ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch +03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch +be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch +179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch +d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch +eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch +29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch +" diff --git a/test/testdata/aportgen/pmaports/cross/gcc-armhf/APKBUILD b/test/testdata/aportgen/pmaports/cross/gcc-armhf/APKBUILD index 1ca63cf6..9ea038af 100644 --- a/test/testdata/aportgen/pmaports/cross/gcc-armhf/APKBUILD +++ b/test/testdata/aportgen/pmaports/cross/gcc-armhf/APKBUILD @@ -24,17 +24,18 @@ CBUILDROOT="/" _cross_configure="--disable-bootstrap --with-sysroot=/usr/$CTARGET" pkgname=gcc-armhf -pkgver=8.2.0 +_pkgbase=12.1.1 +pkgver=12.1.1_git20220630 [ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2" [ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" [ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" pkgname=gcc-armhf -pkgrel=1 +pkgrel=5 pkgdesc="Stage2 cross-compiler for armhf" -url="http://gcc.gnu.org" +url="https://gcc.gnu.org" arch="x86_64" -license="GPL LGPL" +license="GPL-2.0-or-later LGPL-2.1-or-later" _gccrel=$pkgver-r$pkgrel depends="isl binutils-armhf mpc1" makedepends_build="gcc g++ bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev" @@ -43,22 +44,24 @@ subpackages="g++-armhf:gpp" [ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target" replaces="libstdc++ binutils" -: ${LANG_CXX:=true} -: ${LANG_OBJC:=true} -: ${LANG_GO:=true} -: ${LANG_FORTRAN:=true} -: ${LANG_ADA:=true} +: "${LANG_CXX:=true}" +: "${LANG_D:=true}" +: "${LANG_OBJC:=true}" +: "${LANG_GO:=true}" +: "${LANG_FORTRAN:=true}" +: "${LANG_ADA:=true}" +: "${LANG_JIT:=true}" -LIBGOMP="false" -LIBGCC="false" -LIBATOMIC="false" -LIBITM="false" +_libgomp=true +_libgcc=true +_libatomic=true +_libitm=true if [ "$CHOST" != "$CTARGET" ]; then if [ "$BOOTSTRAP" = nolibc ]; then LANG_CXX=false LANG_ADA=false - LIBGCC=false + _libgcc=false _builddir="$srcdir/build-cross-pass2" else _builddir="$srcdir/build-cross-final" @@ -66,9 +69,11 @@ if [ "$CHOST" != "$CTARGET" ]; then LANG_OBJC=false LANG_GO=false LANG_FORTRAN=false - LIBGOMP=false - LIBATOMIC=false - LIBITM=false + LANG_D=false + LANG_JIT=false + _libgomp=false + _libatomic=false + _libitm=false # reset target flags (should be set in crosscreate abuild) # fixup flags. seems gcc treats CPPFLAGS as global without @@ -102,6 +107,8 @@ elif [ "$CBUILD" != "$CHOST" ]; then LANG_OBJC=false LANG_GO=false LANG_FORTRAN=false + LANG_D=false + LANG_JIT=false STRIP_FOR_TARGET=${CROSS_COMPILE}strip _builddir="$srcdir/build-cross-native" @@ -110,36 +117,62 @@ else _builddir="$srcdir/build" fi -# Go needs {set,make,swap}context, unimplemented in musl -[ "$CTARGET_LIBC" = musl ] && LANG_GO=false +case "$CARCH" in +# GDC hasn't been ported to PowerPC +# See libphobos/configure.tgt in GCC sources for supported targets +# riscv fails with: error: static assert "unimplemented" +ppc64le|riscv64) LANG_D=false ;; +# GDC does currently not work on 32-bit musl architectures. +# This is a known upstream issue. +# See: https://github.com/dlang/druntime/pull/3383 +armhf|armv7|x86) LANG_D=false ;; +esac # libitm has TEXTRELs in ARM build, so disable for now case "$CTARGET_ARCH" in -arm*) LIBITM=false ;; -mips*) LIBITM=false ;; +arm*) _libitm=false ;; +mips*) _libitm=false ;; +riscv64) _libitm=false ;; +esac + +# Internal libffi fails to build on MIPS at the moment, need to +# investigate further. We disable LANG_GO on mips64 as it requires +# the internal libffi. +case "$CTARGET_ARCH" in +mips*) LANG_GO=false ;; esac # Fortran uses libquadmath if toolchain has __float128 # currently on x86, x86_64 and ia64 -LIBQUADMATH=$LANG_FORTRAN +_libquadmath=$LANG_FORTRAN case "$CTARGET_ARCH" in -x86 | x86_64) LIBQUADMATH=$LANG_FORTRAN ;; -*) LIBQUADMATH=false ;; +x86 | x86_64) _libquadmath=$LANG_FORTRAN ;; +*) _libquadmath=false ;; esac # libatomic is a dependency for openvswitch -$LIBATOMIC && subpackages="$subpackages libatomic::$CTARGET_ARCH" -$LIBGCC && subpackages="$subpackages libgcc::$CTARGET_ARCH" -$LIBQUADMATH && subpackages="$subpackages libquadmath::$CTARGET_ARCH" -if $LIBGOMP; then +$_libatomic && subpackages="$subpackages libatomic::$CTARGET_ARCH" +$_libgcc && subpackages="$subpackages libgcc::$CTARGET_ARCH" +$_libquadmath && subpackages="$subpackages libquadmath::$CTARGET_ARCH" +if $_libgomp; then depends="$depends libgomp=$_gccrel" subpackages="$subpackages libgomp::$CTARGET_ARCH" fi +case "$CARCH" in +riscv64) +LANG_ADA=false;; +esac + _languages=c if $LANG_CXX; then _languages="$_languages,c++" fi +if $LANG_D; then + subpackages="$subpackages libgphobos::$CTARGET_ARCH gcc-gdc$_target:gdc" + _languages="$_languages,d" + makedepends_build="$makedepends_build libucontext-dev gcc-gdc-bootstrap" +fi if $LANG_OBJC; then subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc" _languages="$_languages,objc" @@ -153,56 +186,86 @@ if $LANG_FORTRAN; then _languages="$_languages,fortran" fi if $LANG_ADA; then - subpackages="$subpackages libgnat::$CTARGET_ARCH gcc-gnat$_target:gnat" + subpackages="$subpackages gcc-gnat$_target:gnat" _languages="$_languages,ada" - makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross" + if [ "$CBUILD" = "$CTARGET" ]; then + makedepends_build="$makedepends_build gcc-gnat-bootstrap" + subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH libgnat::$CTARGET_ARCH" + else + subpackages="$subpackages libgnat::$CTARGET_ARCH" + makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross" + fi +fi +if $LANG_JIT; then + subpackages="$subpackages libgccjit:jit libgccjit-dev:jitdev" fi makedepends="$makedepends_build $makedepends_host" -source="https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz - 002_all_default-relro.patch - 003_all_default-fortify-source.patch - 005_all_default-as-needed.patch - gcc-as-needed-gold.patch - gcc-as-needed-push-pop.patch - 011_all_default-warn-format-security.patch - 012_all_default-warn-trampolines.patch - 013_all_default-ssp-fix.patch - 020_all_msgfmt-libstdc++-link.patch - 050_all_libiberty-asprintf.patch - 051_all_libiberty-pic.patch - 053_all_libitm-no-fortify-source.patch - 090_all_pr55930-dependency-tracking.patch - 0003-gcc-poison-system-directories.patch - - 203-libgcc_s.patch - 205-nopie.patch - 0002-posix_memalign.patch - 0008-s390x-muslldso.patch - 0010-ldbl128-config.patch - 0012-static-pie.patch - - libgcc-always-build-gcceh.a.patch - gcc-4.9-musl-fortify.patch - gcc-6.1-musl-libssp.patch - gcc-pure64.patch - - fix-cxxflags-passing.patch - ada-shared.patch - ada-musl.patch - libgnarl-musl.patch - - 320-libffi-gnulinux.patch - - gcc-pure64-mips.patch +# when using upstream releases, use this URI template +# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz +# +# right now, we are using a git snapshot. +# +# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches, +# so that they can be properly tracked and easily rebased if needed. +source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz + 0001-posix_memalign.patch + 0002-gcc-poison-system-directories.patch + 0003-specs-turn-on-Wl-z-now-by-default.patch + 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch + 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch + 0006-Enable-Wformat-and-Wformat-security-by-default.patch + 0007-Enable-Wtrampolines-by-default.patch + 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch + 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch + 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch + 0011-libiberty-copy-PIC-objects-during-build-process.patch + 0012-libitm-disable-FORTIFY.patch + 0013-libgcc_s.patch + 0014-nopie.patch + 0015-dlang-use-libucontext-on-mips64.patch + 0016-ada-fix-shared-linking.patch + 0017-build-fix-CXXFLAGS_FOR_BUILD-passing.patch + 0018-add-fortify-headers-paths.patch + 0019-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch + 0020-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch + 0021-mips64-disable-multilib-support.patch + 0022-aarch64-disable-multilib-support.patch + 0023-s390x-disable-multilib-support.patch + 0024-ppc64-le-disable-multilib-support.patch + 0025-x86_64-disable-multilib-support.patch + 0026-riscv-disable-multilib-support.patch + 0027-always-build-libgcc_eh.a.patch + 0028-ada-libgnarl-compatibility-for-musl.patch + 0029-ada-musl-support-fixes.patch + 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch + 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch + 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch + 0033-gcc-go-link-to-libucontext.patch + 0034-Use-generic-errstr.go-implementation-on-musl.patch + 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch + 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch + 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch + 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch + 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch + 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch + 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch + 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch + 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch + 0045-druntime-link-against-libucontext-on-all-platforms.patch + 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch + 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch + 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch + 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch + 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch + 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch + 0053-libgo-make-match.sh-POSIX-shell-compatible.patch " -# gcc-4.8-build-args.patch - # we build out-of-tree -_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver} -_gcclibdir=/usr/lib/gcc/${CTARGET}/$pkgver -_gcclibexec=/usr/libexec/gcc/${CTARGET}/$pkgver +_gccdir="$srcdir"/gcc-$pkgver +_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}" +_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}" prepare() { cd "$_gccdir" @@ -225,7 +288,7 @@ prepare() { return 1 fi - echo ${pkgver} > gcc/BASE-VER + echo ${_pkgbase:-$pkgver} > gcc/BASE-VER } build() { @@ -233,6 +296,7 @@ build() { local _libc_configure= local _bootstrap_configure= local _symvers= + local _jit_configure= cd "$_gccdir" @@ -250,6 +314,7 @@ build() { i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";; i586-*-*-*) _arch_configure="--with-arch=i586 --with-tune=generic --enable-cld";; s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";; + riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";; esac case "$CTARGET_ARCH" in @@ -274,10 +339,10 @@ build() { *) _bootstrap_configure="--enable-shared --enable-threads --enable-tls" ;; esac - $LIBGOMP || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" - $LIBATOMIC || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" - $LIBITM || _bootstrap_configure="$_bootstrap_configure --disable-libitm" - $LIBQUADMATH || _arch_configure="$_arch_configure --disable-libquadmath" + $_libgomp || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" + $_libatomic || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" + $_libitm || _bootstrap_configure="$_bootstrap_configure --disable-libitm" + $_libquadmath || _arch_configure="$_arch_configure --disable-libquadmath" msg "Building the following:" echo "" @@ -291,78 +356,112 @@ build() { echo " libc_configure=$_libc_configure" echo " cross_configure=$_cross_configure" echo " bootstrap_configure=$_bootstrap_configure" - echo " hash_style_configure=$_hash_style_configure" + echo " hash_style_configure=$_hash_style_configure" echo "" + export CFLAGS="$CFLAGS -O2" + export CXXFLAGS="$CXXFLAGS -O2" + export CPPFLAGS="$CPPFLAGS -O2" + + local version="Alpine $pkgver-r$pkgrel" + local gccconfiguration=" + --prefix=/usr + --mandir=/usr/share/man + --infodir=/usr/share/info + --build=${CBUILD} + --host=${CHOST} + --target=${CTARGET} + --enable-checking=release + --disable-fixed-point + --disable-libstdcxx-pch + --disable-multilib + --disable-nls + --disable-werror + $_symvers + --enable-__cxa_atexit + --enable-default-pie + --enable-default-ssp + --enable-cloog-backend + --enable-languages=$_languages + $_arch_configure + $_libc_configure + $_cross_configure + $_bootstrap_configure + --with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues + --with-system-zlib + $_hash_style_configure + " + mkdir -p "$_builddir" cd "$_builddir" - "$_gccdir"/configure --prefix=/usr \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --build=${CBUILD} \ - --host=${CHOST} \ - --target=${CTARGET} \ - --with-pkgversion="Alpine ${pkgver}" \ - --enable-checking=release \ - --disable-fixed-point \ - --disable-libstdcxx-pch \ - --disable-multilib \ - --disable-nls \ - --disable-werror \ - $_symvers \ - --enable-__cxa_atexit \ - --enable-default-pie \ - --enable-default-ssp \ - --enable-cloog-backend \ - --enable-languages=$_languages \ - $_arch_configure \ - $_libc_configure \ - $_cross_configure \ - $_bootstrap_configure \ - --with-system-zlib \ - $_hash_style_configure + "$_gccdir"/configure $gccconfiguration \ + --with-pkgversion="$version" + + msg "building gcc" make + + # we build gccjit separate to not build all of gcc with --enable-host-shared + # as doing so slows it down a few %, so for some quick if's here we gain + # free performance + if $LANG_JIT; then + mkdir -p "$_builddir"/libgccjit-build + cd "$_builddir"/libgccjit-build + "$_gccdir"/configure $gccconfiguration \ + --disable-bootstrap \ + --enable-host-shared \ + --enable-languages=jit \ + --with-pkgversion="$version" + + msg "building libgccjit" + make all-gcc + fi } package() { cd "$_builddir" - make -j1 DESTDIR="${pkgdir}" install + make DESTDIR="$pkgdir" install ln -s gcc "$pkgdir"/usr/bin/cc - # we don't support gcj -static + if $LANG_JIT; then + make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common + fi + + # we dont support gcj -static # and saving 35MB is not bad. - find "$pkgdir" -name libgtkpeer.a \ - -o -name libgjsmalsa.a -o \ - -o -name libgij.a -o \ - | xargs rm -f + find "$pkgdir" \( -name libgtkpeer.a \ + -o -name libgjsmalsa.a \ + -o -name libgij.a \) \ + -delete # strip debug info from some static libs - ${STRIP_FOR_TARGET} -g `find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + -o -name libgphobos.a -o -name libgdruntime.a \ -o -name libmudflap.a -o -name libmudflapth.a \ -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ - -a -type f` + -a -type f \ + -exec ${STRIP_FOR_TARGET} -g {} + - if $LIBGOMP; then + if $_libgomp; then mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir fi - if $LIBITM; then + if $_libitm; then mv "$pkgdir"/usr/lib/libitm.spec "$pkgdir"/$_gcclibdir fi # remove ffi rm -f "$pkgdir"/usr/lib/libffi* "$pkgdir"/usr/share/man/man3/ffi* - find "$pkgdir" -name 'ffi*.h' | xargs rm -f + find "$pkgdir" -name 'ffi*.h' -delete local gdblib=${_target:+$CTARGET/}lib - for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py" ); do - mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib - mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/ - done - - paxmark -pmrs "$pkgdir"/$_gcclibexec/cc1 + if [ -d "$pkgdir"/usr/$gdblib/ ]; then + for i in $(find "$pkgdir"/usr/$gdblib/ -type f -maxdepth 1 -name "*-gdb.py"); do + mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib + mv "$i" "$pkgdir"/usr/share/gdb/python/auto-load/usr/$gdblib/ + done + fi # move ada runtime libs if $LANG_ADA; then @@ -370,20 +469,26 @@ package() { mv "$i" "$pkgdir"/usr/lib/ ln -s ../../../../${i##*/} $i done + if [ "$CHOST" = "$CTARGET" ]; then + for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do + mv "$i" "$pkgdir"/usr/lib/ + ln -s ../../../../${i##*/} $i + done + fi fi if [ "$CHOST" != "$CTARGET" ]; then # cross-gcc: remove any files that would conflict with the # native gcc package - rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "$pkgdir"/usr/share + rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "${pkgdir:?}"/usr/share # libcc1 does not depend on target, don't ship it rm -rf "$pkgdir"/usr/lib/libcc1.so* # fixup gcc library symlinks to be linker scripts so # linker finds the libs from relocated sysroot - for so in "$pkgdir"/usr/$CTARGET/lib/*.so; do + for so in "$pkgdir"/usr/"$CTARGET"/lib/*.so; do if [ -h "$so" ]; then - local _real=$(basename $(readlink "$so")) + local _real=$(basename "$(readlink "$so")") rm -f "$so" echo "GROUP ($_real)" > "$so" fi @@ -392,29 +497,33 @@ package() { # add c89/c99 wrapper scripts cat >"$pkgdir"/usr/bin/c89 <<'EOF' #!/bin/sh -fl="-std=c89" +_flavor="-std=c89" for opt; do case "$opt" in - -ansi|-std=c89|-std=iso9899:1990) fl="";; + -ansi|-std=c89|-std=iso9899:1990) _flavor="";; -std=*) echo "$(basename $0) called with non ANSI/ISO C option $opt" >&2 exit 1;; esac done -exec gcc $fl ${1+"$@"} +exec gcc $_flavor ${1+"$@"} EOF cat >"$pkgdir"/usr/bin/c99 <<'EOF' #!/bin/sh -fl="-std=c99" +_flavor="-std=c99" for opt; do case "$opt" in - -std=c99|-std=iso9899:1999) fl="";; + -std=c99|-std=iso9899:1999) _flavor="";; -std=*) echo "$(basename $0) called with non ISO C99 option $opt" >&2 exit 1;; esac done -exec gcc $fl ${1+"$@"} +exec gcc $_flavor ${1+"$@"} EOF chmod 755 "$pkgdir"/usr/bin/c?9 + + # install lto plugin so regular binutils may use it + mkdir -p "$pkgdir"/usr/lib/bfd-plugins + ln -s /$_gcclibexec/liblto_plugin.so "$pkgdir/usr/lib/bfd-plugins/" fi } @@ -431,26 +540,53 @@ libcxx() { pkgdesc="GNU C++ standard runtime library" depends= + if [ "$CHOST" = "$CTARGET" ]; then + # verify that we are using clock_gettime rather than doing direct syscalls + # so we dont break 32 bit arches due to time64. + nm -D "$pkgdir"/usr/lib/libstdc++.so.* | grep clock_gettime + fi + mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/ } +libcxx_dev() { + pkgdesc="GNU C++ standard runtime library (development files)" + depends= + replaces="g++" + + amove usr/lib/libstdc++.a \ + usr/lib/libstdc++.so \ + usr/lib/libstdc++fs.a \ + usr/lib/libsupc++.a \ + usr/include/c++ +} + gpp() { pkgdesc="GNU C++ standard library and compiler" - depends="libstdc++=$_gccrel gcc=$_gccrel libc-dev" + depends="libstdc++=$_gccrel libstdc++-dev=$_gccrel gcc=$_gccrel libc-dev" mkdir -p "$subpkgdir/$_gcclibexec" \ "$subpkgdir"/usr/bin \ "$subpkgdir"/usr/${_target:+$CTARGET/}include \ "$subpkgdir"/usr/${_target:+$CTARGET/}lib \ mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/" - paxmark -pmrs "$subpkgdir/$_gcclibexec/cc1plus" - mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/*++* "$subpkgdir"/usr/${_target:+$CTARGET/}lib/ - mv "$pkgdir"/usr/${_target:+$CTARGET/}include/c++ "$subpkgdir"/usr/${_target:+$CTARGET/}include/ mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/ } +jit() { + pkgdesc="GCC JIT Library" + depends= + amove usr/lib/libgccjit.so* +} + +jitdev() { + pkgdesc="GCC JIT Library (development files)" + depends="libgccjit" + amove usr/include/libgccjit*.h +} + libobjc() { pkgdesc="GNU Objective-C runtime" replaces="objc" @@ -464,8 +600,10 @@ objc() { replaces="gcc" depends="libc-dev gcc=$_gccrel libobjc=$_gccrel" - mkdir -p "$subpkgdir"/$_gcclibdir/include \ + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/$_gcclibdir/include \ "$subpkgdir"/usr/lib + mv "$pkgdir/$_gcclibexec/cc1obj" "$subpkgdir/$_gcclibexec/" mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/ mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \ "$subpkgdir"/usr/lib/ @@ -488,6 +626,40 @@ libgomp() { mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/ } +libgphobos() { + pkgdesc="D programming language standard library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgdruntime.so.* "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.so.* "$subpkgdir"/usr/lib/ +} + +gdc() { + pkgdesc="GCC-based D language compiler" + depends="gcc=$_gccrel libgphobos=$_gccrel musl-dev" + depends="$depends libucontext-dev" + provides="gcc-gdc-bootstrap=$_gccrel" + + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/$_gcclibdir/include/d/ \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + # Copy: The installed '.d' files, the static lib, the binary itself + # The shared libs are part of 'libgphobos' so one can run program + # without installing the compiler + mv "$pkgdir/$_gcclibexec/d21" "$subpkgdir/$_gcclibexec/" + mv "$pkgdir"/$_gcclibdir/include/d/* "$subpkgdir"/$_gcclibdir/include/d/ + mv "$pkgdir"/usr/lib/libgdruntime.a "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgdruntime.so "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.a "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.so "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgphobos.spec "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/bin/$CTARGET-gdc "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/ +} + + libgo() { pkgdesc="Go runtime library for GCC" depends= @@ -498,17 +670,24 @@ libgo() { go() { pkgdesc="Go support for GCC" - depends="gcc=$_gccrel libgo=$_gccrel" + depends="gcc=$_gccrel libgo=$_gccrel !go" mkdir -p "$subpkgdir"/$_gcclibexec \ "$subpkgdir"/usr/lib \ "$subpkgdir"/usr/bin mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/ mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/bin/*go "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/*gofmt "$subpkgdir"/usr/bin mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/cgo "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/buildid "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/test2json "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibexec/vet "$subpkgdir"/$_gcclibexec/ mv "$pkgdir"/usr/lib/libgo.a \ "$pkgdir"/usr/lib/libgo.so \ "$pkgdir"/usr/lib/libgobegin.a \ + "$pkgdir"/usr/lib/libgolibbegin.a \ "$subpkgdir"/usr/lib/ } @@ -532,7 +711,7 @@ libquadmath() { gfortran() { pkgdesc="GNU Fortran Compiler" depends="gcc=$_gccrel libgfortran=$_gccrel" - $LIBQUADMATH && depends="$depends libquadmath=$_gccrel" + $_libquadmath && depends="$depends libquadmath=$_gccrel" replaces="gcc" mkdir -p "$subpkgdir"/$_gcclibexec \ @@ -543,11 +722,12 @@ gfortran() { mv "$pkgdir"/usr/lib/libgfortran.a \ "$pkgdir"/usr/lib/libgfortran.so \ "$subpkgdir"/usr/lib/ - if $LIBQUADMATH; then + if $_libquadmath; then mv "$pkgdir"/usr/lib/libquadmath.a \ "$pkgdir"/usr/lib/libquadmath.so \ "$subpkgdir"/usr/lib/ fi + mv "$pkgdir"/$_gcclibdir/finclude "$subpkgdir"/$_gcclibdir/ mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir } @@ -560,9 +740,18 @@ libgnat() { mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/ } +libgnatstatic() { + pkgdesc="GNU Ada static libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgna*.a "$subpkgdir"/usr/lib/ +} + gnat() { pkgdesc="Ada support for GCC" depends="gcc=$_gccrel" + provides="$pkgname-gnat-bootstrap=$_gccrel" [ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel" mkdir -p "$subpkgdir"/$_gcclibexec \ @@ -573,34 +762,57 @@ gnat() { mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/ } -sha512sums="64898a165f67e136d802a92e7633bf1b06c85266027e52127ea025bf5fc2291b5e858288aac0bdba246e6cdf7c6ec88bc8e0e7f3f6f1985f4297710cafde56ed gcc-8.2.0.tar.xz -e36e95b81489163abd6fe9d58f7867bdca43e61143afacbfb17f4698c0b16ec5fd0061d8fab7b2ae615540bebd721c2e2227f80401b4e7fc253da9da62e6b513 002_all_default-relro.patch -f86466c62b8291fac46f9c250c7ad8fa5ab7b1cce2504442fd07ddc4543665b317ae28951f244e39aba29aeaf3fff252ec4f6a147aa16adb2b7aed747dd89188 003_all_default-fortify-source.patch -02b725b220e540077efef741e9d457f9e004fe53ae642a138e214875d076a60f7c2f27de0ed9a4225db2030fc9c3d2c5b0414c895b9eec0f5f48fad70e2fb029 005_all_default-as-needed.patch -6c9a5068f6eea8a85d297a3555b1d2333ffd4b9ddbfb7560a3e643f8577603871ca123373ef7f96e894225291d88f7bf575c7f8386bcfdd1dabcd7ba12598b65 gcc-as-needed-gold.patch -ab0df1862f1b645634e79b8101326ce53215eba39861a455cd145b81b5267a6a61bc6e76b32d53887a0a48873f7efc23e2c52cc04400c6afd89822f245cdbc77 gcc-as-needed-push-pop.patch -e026bf9f73ee254528423c6cabdfd7794960c567161581b7d4b7c61c45027e12a6efef79662d4288b9cbaecb4798f01af6a5b4a13b766c2d501444ac1846fd43 011_all_default-warn-format-security.patch -37de4cc9061bfe1963e6e6570e1a6bbfd58204bf90e0eef819882599a9a80ea28f3eb815c20c1f173dc25d4bd9971b7c7f7f9512d6f8f91f04de1e1175114d4d 012_all_default-warn-trampolines.patch -38a0fedeac3eebe4a6a957792ba520225cf42663c96a171cd168fdb6c91ffa9a56b80351f8238c5d03b78d3ae2a6539a54481fe4848b4a395e2c87f2ff7adc08 013_all_default-ssp-fix.patch -d35a3ac7e13a4446921a90e1ff3eec1079840c845f9d523c868e24ae21f94cf69ba041de5341ebef96432a6f57598e223381d4286e8fb8baaa25906707f29fbd 020_all_msgfmt-libstdc++-link.patch -840070a3c423e6206aaa6e63e1d9a0fcd6efd53626cd1240a193f0b60aa5d84216acc4a2a4fa8bce74549b07e6a316b01d638f20cea13dc62473491a302fb3d6 050_all_libiberty-asprintf.patch -0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 051_all_libiberty-pic.patch -e7a2eb1b1870e199d6fd753d065781575656fa12baa264f96c5d179689d88c31b8a3f92a5dae96088c05e96aa2bda138364ad7dbcc79e1819a102f192cbb7bab 053_all_libitm-no-fortify-source.patch -4a328d1e1a56c20166307edcfa322068915784d9c08025b7f81cf69714da48fc266b6d34f77b9135c2f10da830d9df408276a1b78d1fd218637c2823506593c2 090_all_pr55930-dependency-tracking.patch -3842bd2be3e53db34e59bfb2bd438b244fc3712055058b9e232e33345f0fab216256b79e364fbac335972dc599a1d74393704f0cd595f3f076dcc10883c85b28 0003-gcc-poison-system-directories.patch -d1c2d7ff7f673375dc7cd84ae9d8515853b5af6390c70bb763412c012101344e4ee1ce155151ce3fb6ba2b80af7ed42d697dbe1bf6fd6e7b2b9087a378c47c37 203-libgcc_s.patch -98473bcaa77903a223ca9b0d2087c0921b287a2816d308cc32c8fe009e6cbf5dd1ae7fba27794ab8d9c09e117fe534413d91a464d1218474fc123ce0adfdc2c1 205-nopie.patch -6d84354e6df96d5ea244eb3bb5f044781796b88040b11c78fb6ee509e5aac19d46e0e92ca836e98e6495d9751f52439833b748efc419e4f5d5301fb549c4dcc9 0002-posix_memalign.patch -7f434a7350c9b06d0ae7cc18a569d813238483afa34b0801d112844a0dfe6164ae36b0416955fd4da7a8caa54672247f319a8ec7ce4b6a97a5f4e17ec083112a 0008-s390x-muslldso.patch -66085c5555e6b91b6874d1782d5a1dc0ab1792889f9400f48cde9483f82b51b9e3a5de1efbba21a19fc5e664334f2188d0c2bc988d42335efa26118b3c85cc7f 0010-ldbl128-config.patch -45d5bc11a89e5af77503ca06eec52d6d84e6fea0be021aaee1bcc39f8dd3c7b4baa4200cfa2b0688faa0f207d005db89c029eff32f362207aa3d2365b2f2363e 0012-static-pie.patch -d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch -600fe5098dc54edaa9808fd5717af9dec058953f9ad37d49cfba1db4f7e9a7a8f02019342f75157fc575946fa693259422184de27b7ecc8386d9f3ecc0f7cc5d gcc-4.9-musl-fortify.patch -dbe0ee917fc7668571722364ab7c806731e3a31e8bfa30b4941b28b16b877d2a32b4a3897ef533399a28f82d43cac9b28e92de0493f0e779046db56584e07fa4 gcc-6.1-musl-libssp.patch -fa62556719449caec6b2b434355bfbcaa5ae55ffe017b3e1f827f66a2aae21b79c571ee7a4ce723ea69169bc3a6447e73650991a200cc372adf2f102677518d7 gcc-pure64.patch -35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch -3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch -50537add461714f44dc6a778e0c6d0e15d6a782591c8aff38d1fb559191ddac2b5ee14a43a3005b389fdf98d2e7468ff4e64c88ba024cf94f9fe0d9854b9e9c8 ada-musl.patch -a1f7750bc7b8b7d916a5dee34fcc736bd4fb249c96538b547d495794e6cfd49356aa3974506a15074b4cb58edd5d7e2868607c902dd003e8c464d5066fd4a575 libgnarl-musl.patch -f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch -86be3338cc9c33089608bc4c5e3b7918c4e500a345c338f361b18c342119a6ed69af5495d72950de7106d760f003528b46ad14795e805f8a3331e206dcb234e3 gcc-pure64-mips.patch" +sha512sums=" +43de66dfed7b5351bb543f7f2e8253e63d1e544e5bd293829e8ec7bffe60925cabcf8f6972fe8825100b1f1d7839e41d9314ec650c1320150c09317e2be24aa9 gcc-12.1.1_git20220630.tar.xz +41cbb4d69218006cf9e0cdb6c86212ef451f8decd52a50a7dbb4d34726009da7a4e0261c852b46cb584db253a4bae2f31dc485c506cb545e64a7d26e0ba6c2b6 0001-posix_memalign.patch +531155055cda7f119bcac6479bcae73af9201cd596af9cf1616850bbcf4393b91c5de9f2fbbc1cde6e158fb4df7237b033146f662dff5fa0ea12151cc514adb8 0002-gcc-poison-system-directories.patch +c1275d77b5269386a2ec683933570810f5a2ba1208c161ed887797eb9aee3cb82ef08a8964635902614e6a6e83f3065ba0801c9355d85dd8d60cb1fa20bdf687 0003-specs-turn-on-Wl-z-now-by-default.patch +a54e45bff4484a35d3826435a414d909281453f5605f4081cf3be1f15336cceed93a1d8a54e92e2fa97188623e3030ca1323d7749141e228a7db73795230d86a 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch +ad132ddbd0c33a3983e3de4f74d8fdb8cb1ddf53ef54de0a5c12efb49e42014ed117165d43f396bcf3455ecfe2c8620e0326e73b4160a370a4cc92d213329c34 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch +0b9ce0f130a7b797770f3d58a5200575f20e5663c86c0c5710718b7bffd3416cc2f05861613d9c258428e9541c6e0b9837d01f0c99d383e2c3de0503a988e861 0006-Enable-Wformat-and-Wformat-security-by-default.patch +e7813acc7ead61373c212cefbe53eb020b4c5bd8f0f35ee972e0524060713f911624f5a1a871feada642e1f3f5e48c8508125ca2da09de351d544bedf1d44ada 0007-Enable-Wtrampolines-by-default.patch +d0d0566a11e4828bdd6f53346a9a6b9841f3066d3f4a05ee2b6fe97aeb4552654170e7662318ea18fc777c3e75c88a067097478fc4e880a3f9c134b8a3af2277 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch +f75e63d9d933874f18fb7f55b135c60dfa0377abafa8e0edb91b85d5f00f4f072d0a338ba5d9baec18494211dbbda8068782830dbafbb37068936f76aede270f 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch +afa4daba222a19569588736a8276dc7c12223a7c222f3dd3795dc3f1cd90f40b90518971ae27b358020354f89562c9680ec8b8e24e85e6d4f8e54e79d185359b 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch +79dac82249fb573ec477e1451a33883302eb63a5110853faed117f5021221f2153e2ec845dd5a0043b1bf9f0e5736ef0c89743ff2d771774a281c8b24542803a 0011-libiberty-copy-PIC-objects-during-build-process.patch +b035f85c1703b45d15c1d1ffe7d23400e01625e5d403504911cc92f740b02586447de2a9d66a9f80f12b9c227bc193e2a43942c8af2bdb42cdeff8272bbe6068 0012-libitm-disable-FORTIFY.patch +9fb4d396a9493d2d68fe829ce075ba4c5df148b1d6aaab315a6f8ccbdd70d0e052a5dc50369adc2dab005b4a3becd1504b182faed6e82c86accb95f5bc2b9f50 0013-libgcc_s.patch +f82ac22961d842c9f8e731a601bb255918cc160969888363ad2d83e2ccf08b19114a200d46bcf99d097bf530f470c2b1e71e46828bc1b9fff5469ff945f541d8 0014-nopie.patch +6527dc9d250db48d56cf01e9299461bf22a838ffda96c40d448e18f457b206cec2322275d2d5abbbaf3c6573c5e7eba12724c9691b601f118ff7520e19726373 0015-dlang-use-libucontext-on-mips64.patch +6c3ce0ccd68b19e2c76172d8f24b0747ee0af2b8de7af692f2f699848267d7fc42fec8e5c303102fe05be7e934b56f21eea17ce47c8aca20570590830d88e9b0 0016-ada-fix-shared-linking.patch +7089a96aaec8e0b222cb3fa7301d71bb2e328a24dec33e15ea9e3e7695bcae919308249b9a3be5ea2f3b1f069f9fd1739066f31d12317fcdab0596dba9ca54a4 0017-build-fix-CXXFLAGS_FOR_BUILD-passing.patch +b7ebdeee0b143052fdd6e3efa070ea8621d4fb729312cbc787d618e666b593990a20cd9044a786265970d8e09ec13da03b797009543d0b657b0fe924f2dcaa68 0018-add-fortify-headers-paths.patch +8e682893d6367732ab8c490b915112a68d98855deec3bd8db91dc0d9bf486b8c044b13ee2b95c4806da7ac17c41034e081b7a66861018274cb33fdb2fd6df04a 0019-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch +a14c5f98ade5af8cd6e3a0244752674d9c4f6dadb4260f98f1949bff51ac1211a3f8319e0f933f776e98998d2c7221004f92413f97ccc2e966f8462ed6d33597 0020-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch +28c1d477da79aa212ac79e4b02cf865d8b9c31cec6c42f41b4268e3f3c49bf67fb51e54180abe543a54e550788bb472bfcf1b4bc38d072a792d7403dbbee178a 0021-mips64-disable-multilib-support.patch +0920e31c46bf937b47a0602766f042d45adb71abf332ee84399c665c12298ef115cff945fe26d646b0276bfdfdd04913970e6f1f8784a11c26e15111c854643d 0022-aarch64-disable-multilib-support.patch +e4c6bf7ec40f2798c8e5b40a543aecffd5591a2805546b3b97aaa4fbe4df6ce4330a60973a9ddfbca9890590606d5204e7f653ab2b6e4b2c13feeb595b68e63a 0023-s390x-disable-multilib-support.patch +0e956d793c94283ce5af7fe84bfcbb655585a9573608e9bf497fa7b726e12daa391e44977d0a8c97fb460aba89b1773b91e036b0ee1ef4d6263a3943cb63d9cd 0024-ppc64-le-disable-multilib-support.patch +95917fcb60dbc0a8134db9beb583f3c9ea61128499c214f594c434ec8246641ec41e245ce2d1d9b85ffd40ea0e5764f7a33c5522b2547145814245ac0fa25025 0025-x86_64-disable-multilib-support.patch +b40d7e4712c035674c993bbb55475290ec14523b3f0fd05493514bac4e9adaa6641faf815fc40ffc00119d9fd64be28218ee874c289ec7430eeef05ab2fcae5e 0026-riscv-disable-multilib-support.patch +674360ce2ee9f704d0632cc98756f9fe8dd8ca30064fb9d3423b437f7e679c1c51e765b15e535dcb278cd2769583690acb3395b91e4fd5f6f4e3b97879fcc313 0027-always-build-libgcc_eh.a.patch +f060687adcd5297124e4000f1ba1e3fd5d7d124da04d948cbd0d4a6c69a90a2b29a4a0dbbe13a83ab6950724f434de012b681bdbcdf53c0100b40fe3d00f2f2f 0028-ada-libgnarl-compatibility-for-musl.patch +5160bae68e20a1966c1f6d655ee98af759e9b9ee842718ae6007d467b418e1cf3b307528a0841477b5259671ce868521b06c0f2e947b7b8f3a398c53dd978252 0029-ada-musl-support-fixes.patch +74c70a752ff24f231b45c69ca1d86ebf261bca643334cb6ba518ac204986ccd7fa84f4df4fdb38bbc0bb61832514b0100b2d2ba069fb1842929369d073220f24 0030-gcc-go-Fix-handling-of-signal-34-on-musl.patch +9786711f308d5f93f2f5a45862f340d4741e1d8aef116d696b85a6debb6149d3772b0cfab4d9ef8782172b102664d9acdd27021af433b504c5918f379b1dd978 0031-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch +4ffd2f279fbcf5abb1ac8cc6435204e48a776e7ef3742f2120eef1a1bdca2d0a01d30c481fd1495926c9166daaf127f9013fda0efefe3ed7bf6e660915cc1b49 0032-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch +0ad15e78806031cef68da6577f7ce9be178533b3768ca42fff7f12816d61fa745acc77be2e047ac1c5bfdbc04e999202e5cefd04042bca798177197236b79954 0033-gcc-go-link-to-libucontext.patch +699dc3641099da6136dd3689f06c6553c03b3a85acf83a3fce1beb5425065b3e378535ca9e9100a120fdbafc34871d61c063fd5328a49cd87a15a989ed51706d 0034-Use-generic-errstr.go-implementation-on-musl.patch +d9ba710f770e053c8f212e821817c188091a829658050b9ab5906388553ec60fec37943ea43c270e92a9014902949f3c98fc4639032d92b8145b375bb29e193e 0035-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch +ab90d8fdd977d6cd3da096a1c76d77be3e89a020b2127247771711a32eb608cceed21834ef488ab4b69bb0f408b098fdfb61630819e3d1a1e57d5af67800ee74 0036-configure-fix-detection-of-atomic-builtins-in-libato.patch +7b356e11f66877bee864e2b1f81ae4be6c6c586040afb3ac220ff902f694efd60dcb4647cc7a37890c91dd539535b9992d463b785d3158205dbf9369b17c8ab7 0037-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch +5905e4309670cfa4a5883aa21f744391ee2107731795817e0ffcccfaa22b0c21df883038c86362b091e7b35730aa4de6dce827c908ea398a161add851df5c31e 0039-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch +570e084d223671fa29cb460b1b536a216920a7bcdfcdad21fe8cd7610e13f6942c1b1dd34ec861e9e3d830b9fe1f0e02e305c50c54d83aaf20526be09ca2256c 0040-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch +a8b53c7d6e0d6d19c655844cab074f49b8f14c54a7af920b5792303f73713fdc69b723a0a6041548d227dfaa98ef63641460ea355487619eb29f9fec4a1e301b 0041-go-gospec-forcibly-disable-fsplit-stack-support.patch +15c93c9f2d68b19d00c6e82748e5f14470a120a3996f64d1ce91f17a65a5334cca478b4a6eba7d2d0a1d6d22206407ac3b1b5255987cc1144f5177bbb68153c8 0042-gcc-go-fix-build-error-with-SYS_SECCOMP.patch +25014dfa99d96ee70ce0ad22e9f7974f0a51cc50b3b9c2db49df50774c8cd29e497ceed120486bee50be83bfb07f2009ed310eb9b0543f2795bd7359b87eadd2 0043-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch +75fd83ac05ab0a08d5f48547b08810f9934209bc78b5db59d65f33887b382af7ec24d8a29d40f86325c05af40c1ae1ec6466c839f646af90afc895a13073d07b 0044-gdc-unconditionally-link-libgphobos-against-libucont.patch +13e047153076d6e1fc40c9f5b6bfe5699c0e5460248f3d2b35ae36677cb960525af7b0b025997e5000a8492cec5e77a86828d66b4058c0d7f89fde0ab3890142 0045-druntime-link-against-libucontext-on-all-platforms.patch +ba87d4b4433e5f018071ce933ae523c62334574be2e46881a8945c9dc7ecc0fadfed3aaf837f13f93fd4c0d6d33feb24cb67c77d9c0adb40b62637991fed4374 0046-c-avoid-memory-poisoning-on-musl-PR106102.patch +03e7c0caf59ee7c7d13a840178befb378b734f18a5c36ec4bbfad3f78253f0afab80864ea0905b58454178c8c31b2441622dd38668dd54e6550e30e6249e882b 0047-jit-avoid-calloc-poisoning-on-musl-PR106102.patch +be7688a44707991c31337bff24245394aa385e7b4ba151f18e21e734a4bbb151348458f413965e5cba50185ab8e0aba8b793eba04c0802dc563b148ed490f26d 0049-libgo-adjust-name-of-union-in-sigevent-struct.patch +179cd15d629884a66e954fd76066675efa594686b970facbb12ad50769e5d70b5530d7f61e77120e26d1c3dfc701cfc5295f341f635db998df73c41bc8e62172 0050-libphobos-don-t-define-__mode_t-twice-on-musl-target.patch +d7592589cbf982f4518cb07572f96131278c7d2fd8fbbcd7fcb47f6628529ae9a5fc22b2dfe929be06845d137e1c5d2efeb6f63b1c2fb9c36cd6bdb97d41c65f 0051-libgo-Explicitly-define-SYS_timer_settime-for-32-bit.patch +eb403d8ea665fd5dc2c11faf43b055e6a3bf480a397ceee3e0ca1e38ec7d2392315f2694ed9a34ffbc99e464f2873fbbf91be8646ea4dea5d3636e3ea22fefa0 0052-libgnat-time_t-is-always-64-bit-on-musl-libc.patch +29c4fe28e5bf232e01b44106b2f8a3e50b5e00fc4302a69d3f5f90695e43ef07721a917b51d49dc40ae0543d8d97d432cb475834059c92176b73d326af9496e3 0053-libgo-make-match.sh-POSIX-shell-compatible.patch +"