diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-07-14 06:52:05 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-07-14 10:41:09 +0000 |
commit | 7a60b0357ec90abd767ebe9b301aeaa795288864 (patch) | |
tree | e58d7cdd119438be25a89287537a92934dfa1706 | |
parent | 47c71fbe7583fa29f604f5010bc6218d3f5856e3 (diff) | |
download | aports-7a60b0357ec90abd767ebe9b301aeaa795288864.tar.bz2 aports-7a60b0357ec90abd767ebe9b301aeaa795288864.tar.xz |
main/gcc: disable ifunc attrs, dont disable symvers for uclibc
Seems gcc 4.8.1 started using ifunc attributes in libatomic which go
uses heavily. This requires ldso support which is not done in uclibc
nor musl. Only in glibc at the time. GCC configure does not detect it
properly.
Also, do not disable symvers for uClibc - otherwise we break ABI for
libstdc++
-rw-r--r-- | main/gcc/APKBUILD | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD index 0e64642594..9275ad514c 100644 --- a/main/gcc/APKBUILD +++ b/main/gcc/APKBUILD @@ -7,7 +7,7 @@ _specs_gcc_ver=4.4.3 _uclibc_abiver=0.9.32 -pkgrel=0 +pkgrel=1 pkgdesc="The GNU Compiler Collection" url="http://gcc.gnu.org" arch="all" @@ -147,7 +147,7 @@ prepare() { build() { local _dynamic_linker= local _arch_configure= - local _symvers="--disable-symvers" + local _symvers= cd "$_gccdir" export CFLAGS="-fno-stack-protector $CFLAGS" [ -z "$CBUILD" ] && CBUILD="$CHOST" @@ -162,13 +162,21 @@ build() { ;; x86_64-*-gnu) _dynamic_linker="--with-dynamic-linker=ld-linux-x86-64.so.2" - _symvers= ;; *-gnu) _dynamic_linker="--with-dynamic-linker=ld-linux.so.2" - _symvers= ;; *) _dynamic_linker= + _symvers="--disable-symvers" + ;; + esac + + # disable symvers for non-glibc (uclibc/musl) + # ifunc attributes detection is broke in configure script so force + # disable it for non-glibc. It is used heavily by Go lang. + case "$CHOST" in + *-gnu) ;; + *) export libat_cv_have_ifunc=no ;; esac |