diff options
author | Cem Keylan <cem@ckyln.com> | 2021-04-27 17:32:29 +0300 |
---|---|---|
committer | Cem Keylan <cem@ckyln.com> | 2021-04-27 17:32:29 +0300 |
commit | 83d719c436939f24aec04c52649f74c1d2342770 (patch) | |
tree | 694a2ef46f9c0367bb561e3bc0d53f3f6b32dd23 /testing | |
parent | 0fdfba76f0f72486b507be4f0131a49097a3d4eb (diff) | |
download | repository-83d719c436939f24aec04c52649f74c1d2342770.tar.gz |
gcc: add new package at 11.1.0 [TESTING]
Diffstat (limited to 'testing')
-rwxr-xr-x | testing/gcc/build | 83 | ||||
-rw-r--r-- | testing/gcc/checksums | 6 | ||||
-rw-r--r-- | testing/gcc/depends | 4 | ||||
-rwxr-xr-x | testing/gcc/files/c99 | 2 | ||||
-rw-r--r-- | testing/gcc/patches/musl-libssp.patch | 20 | ||||
-rw-r--r-- | testing/gcc/sources | 6 | ||||
-rw-r--r-- | testing/gcc/version | 1 |
7 files changed, 122 insertions, 0 deletions
diff --git a/testing/gcc/build b/testing/gcc/build new file mode 100755 index 00000000..e3bb1e03 --- /dev/null +++ b/testing/gcc/build @@ -0,0 +1,83 @@ +#!/bin/sh -e + +sys_arch=${3:-$(uname -m)} + +sed_i() { + for file; do :; done + sed "$@" > _ + cat _ > "$file"; rm -f _ +} + +# Make sure gmp is built with generic options. +cp gcc/gmp/configfsf.guess gcc/gmp/config.guess +cp gcc/gmp/configfsf.sub gcc/gmp/config.sub + +if [ "${sys_arch#i*86}" ]; then + # Do not create lib64 directories + sed_i '/m64=/s/lib64/lib/' gcc/gcc/config/i386/t-linux64 + sed_i 's/lib64/lib/' gcc/gcc/config/i386/linux64.h +else + # Apply libssp patch for i686. + (cd gcc; patch -Np1 < ../musl-libssp.patch) +fi + +case "$sys_arch" in + i*86) archopts="--build=i686-pc-linux-musl \ + --disable-libssp" ;; + x86_64) archopts="--build=x86_64-pc-linux-musl" +esac + +# Build must happen outside of gcc source. +mkdir -p gcc-build +cd gcc-build + +export libat_cv_have_ifunc=no + +../gcc/configure \ + --prefix=/usr \ + --disable-multilib \ + --disable-symvers \ + --disable-libmpx \ + --disable-libmudflap \ + --disable-libsanitizer \ + --disable-werror \ + --disable-fixed-point \ + --disable-libstdcxx-pch \ + --disable-nls \ + --without-included-gettext \ + --enable-checking=release \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --with-system-zlib \ + --enable-__cxa_atexit \ + --enable-default-pie \ + --enable-default-ssp \ + --enable-shared \ + --enable-threads \ + --enable-tls \ + --enable-languages=c,c++ \ + $archopts \ + --disable-bootstrap + +make +make DESTDIR="$1" install + +# Save 35MB. +find "$1" -name libgtkpeer.a -exec rm -f {} + +find "$1" -name libgjsmalsa.a -exec rm -f {} + +find "$1" -name libgij.a -exec rm -f {} + + +# Some legacy programs will expect cc +ln -s gcc "$1/usr/bin/cc" + +# POSIX compliance. +install -Dm755 ../c99 "$1/usr/bin/c99" + +# Symlink for LTO. +{ + mkdir -p "$1/usr/lib/bfd-plugins" + + ln -s "/usr/libexec/gcc/$sys_arch-pc-linux-musl/$2/liblto_plugin.so" \ + "$1/usr/lib/bfd-plugins/liblto_plugin.so" +} + diff --git a/testing/gcc/checksums b/testing/gcc/checksums new file mode 100644 index 00000000..27586eaf --- /dev/null +++ b/testing/gcc/checksums @@ -0,0 +1,6 @@ +4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf gcc-11.1.0.tar.xz +fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2 gmp-6.2.1.tar.xz +0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f mpfr-4.1.0.tar.xz +17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459 mpc-1.2.1.tar.gz +765614b3396d70bca3fa0ae4a813632486c6dca320e2bd13c8c39dca52be4a4c c99 +4ece19529edb8e681e1778e977e2ba1d47984ccfcb82505e8b898bb29d659625 musl-libssp.patch diff --git a/testing/gcc/depends b/testing/gcc/depends new file mode 100644 index 00000000..3eb45901 --- /dev/null +++ b/testing/gcc/depends @@ -0,0 +1,4 @@ +binutils +byacc make +flex make +zlib diff --git a/testing/gcc/files/c99 b/testing/gcc/files/c99 new file mode 100755 index 00000000..692f0924 --- /dev/null +++ b/testing/gcc/files/c99 @@ -0,0 +1,2 @@ +#!/bin/sh +exec cc -std=c99 "$@" diff --git a/testing/gcc/patches/musl-libssp.patch b/testing/gcc/patches/musl-libssp.patch new file mode 100644 index 00000000..fe5c6143 --- /dev/null +++ b/testing/gcc/patches/musl-libssp.patch @@ -0,0 +1,20 @@ +Author: Timo Teräs <timo.teras@iki.fi> + +Alpine musl package provides libssp_nonshared.a. We link to it unconditionally, +as otherwise we get link failures if some objects are -fstack-protector built +and final link happens with -fno-stack-protector. This seems to be the common +case when bootstrapping gcc, the piepatches do not seem to fully fix the +crosstoolchain and bootstrap sequence wrt. stack-protector flag usage. + +--- gcc-6.1.0/gcc/gcc.c.orig ++++ gcc-6.1.0/gcc/gcc.c +@@ -870,8 +870,7 @@ + + #ifndef LINK_SSP_SPEC + #ifdef TARGET_LIBC_PROVIDES_SSP +-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ +- "|fstack-protector-strong|fstack-protector-explicit:}" ++#define LINK_SSP_SPEC "-lssp_nonshared" + #else + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit" \ diff --git a/testing/gcc/sources b/testing/gcc/sources new file mode 100644 index 00000000..63de2a34 --- /dev/null +++ b/testing/gcc/sources @@ -0,0 +1,6 @@ +https://gcc.gnu.org/pub/gcc/releases/gcc-11.1.0/gcc-11.1.0.tar.xz gcc +https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz gcc/gmp +https://ftp.gnu.org/gnu/mpfr/mpfr-4.1.0.tar.xz gcc/mpfr +https://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz gcc/mpc +files/c99 +patches/musl-libssp.patch diff --git a/testing/gcc/version b/testing/gcc/version new file mode 100644 index 00000000..ec1ee9a6 --- /dev/null +++ b/testing/gcc/version @@ -0,0 +1 @@ +11.1.0 1 |