aboutsummaryrefslogtreecommitdiff
path: root/i686
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-05-19 03:47:08 +0300
committerCem Keylan <cem@ckyln.com>2020-05-19 03:47:08 +0300
commit336dd2ab8079763060280c7aaa797e7d6665df0c (patch)
tree3f4bdbde0dc9102abe00775d6a7e0d1aba6ae69d /i686
parentefb76a88613529ae4f076590ad8a9f16d4c13398 (diff)
downloadrepository-336dd2ab8079763060280c7aaa797e7d6665df0c.tar.gz
gcc: use libssp provided by musl
Diffstat (limited to 'i686')
-rwxr-xr-xi686/gcc/build5
-rw-r--r--i686/gcc/checksums1
-rw-r--r--i686/gcc/patches/musl-libssp.patch20
-rw-r--r--i686/gcc/sources1
4 files changed, 27 insertions, 0 deletions
diff --git a/i686/gcc/build b/i686/gcc/build
index e0f912e7..e6653738 100755
--- a/i686/gcc/build
+++ b/i686/gcc/build
@@ -1,5 +1,10 @@
#!/bin/sh -e
+(
+ cd gcc
+ patch -Np1 < ../musl-libssp.patch
+)
+
# 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
diff --git a/i686/gcc/checksums b/i686/gcc/checksums
index 31e5fbd3..ebe22b10 100644
--- a/i686/gcc/checksums
+++ b/i686/gcc/checksums
@@ -3,3 +3,4 @@ b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2 gcc-10.1.0.tar
1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a mpfr-4.0.2.tar.xz
6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e mpc-1.1.0.tar.gz
765614b3396d70bca3fa0ae4a813632486c6dca320e2bd13c8c39dca52be4a4c c99
+4ece19529edb8e681e1778e977e2ba1d47984ccfcb82505e8b898bb29d659625 musl-libssp.patch
diff --git a/i686/gcc/patches/musl-libssp.patch b/i686/gcc/patches/musl-libssp.patch
new file mode 100644
index 00000000..fe5c6143
--- /dev/null
+++ b/i686/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/i686/gcc/sources b/i686/gcc/sources
index 6eb83031..8a68dca5 100644
--- a/i686/gcc/sources
+++ b/i686/gcc/sources
@@ -3,3 +3,4 @@ https://gmplib.org/download/gmp/gmp-6.2.0.tar.xz gcc/gmp
https://ftp.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.xz gcc/mpfr
https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz gcc/mpc
files/c99
+patches/musl-libssp.patch