diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-09-10 09:58:34 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-09-10 09:58:34 +0000 |
commit | f4aacf4c3225f8a31807f89e5d251a71c9a42327 (patch) | |
tree | 00fee5cbb46e2bbf938c3993abb6458bcb26f60e /main/gcc | |
parent | ea0af854b52e5d2b44e6af094572e6ae38d1ba5a (diff) | |
download | aports-f4aacf4c3225f8a31807f89e5d251a71c9a42327.tar.bz2 aports-f4aacf4c3225f8a31807f89e5d251a71c9a42327.tar.xz |
Revert "main/gcc: fixes, support crosscompiler creation"
Needs newer abuild
This reverts commit ea0af854b52e5d2b44e6af094572e6ae38d1ba5a.
Diffstat (limited to 'main/gcc')
-rw-r--r-- | main/gcc/APKBUILD | 279 | ||||
-rw-r--r-- | main/gcc/ada-crossbuild.patch | 49 | ||||
-rw-r--r-- | main/gcc/ada-fixes.patch | 47 | ||||
-rw-r--r-- | main/gcc/ada-musl.patch | 118 | ||||
-rw-r--r-- | main/gcc/ada-no-pie.patch | 22 | ||||
-rw-r--r-- | main/gcc/ada-shared.patch | 30 | ||||
-rw-r--r-- | main/gcc/fix-cxxflags-for-target.patch | 5 | ||||
-rw-r--r-- | main/gcc/gcc-4.8-musl-fix-arm-interp.patch | 14 | ||||
-rw-r--r-- | main/gcc/gcc-4.8-musl.patch | 297 |
9 files changed, 76 insertions, 785 deletions
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD index c70f651e69..03d48edaed 100644 --- a/main/gcc/APKBUILD +++ b/main/gcc/APKBUILD @@ -4,68 +4,28 @@ pkgver=4.8.1 _piepatchver=0.5.6 _specs_ver=0.2.0 _specs_gcc_ver=4.4.3 + _uclibc_abiver=0.9.32 -_cross="" -[ "$BOOTSTRAP" = "noheaders" ] && pkgname="gcc-pass1" -[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2" -[ "$CHOST" != "$CTARGET" ] && [ -n "$CHOST" -a -n "$CTARGET" ] \ - && _cross="-$CTARGET" - -pkgname="$pkgname$_cross" -pkgrel=3 + +pkgrel=2 pkgdesc="The GNU Compiler Collection" url="http://gcc.gnu.org" arch="all" license="GPL LGPL" _gccrel=$pkgver-r$pkgrel -depends="binutils$_cross" -makedepends_build="bison flex texinfo gawk zip" -makedepends_host="gmp-dev mpfr-dev mpc1-dev zlib-dev cloog-dev !libiconv-dev !gettext-dev" -makedepends="$makedepends_build $makedepends_host" -subpackages=" " -[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_cross" +depends="binutils libgomp=$_gccrel" +makedepends="bison flex gmp-dev mpfr-dev texinfo mpc1-dev gawk zlib-dev zip + cloog-dev !libiconv-dev !gettext-dev" +subpackages="$pkgname-doc libgcc libgomp libstdc++:libcxx g++:gpp" replaces="libstdc++" -: ${LANG_CXX:=true} : ${LANG_OBJC:=true} : ${LANG_JAVA:=true} : ${LANG_GO:=true} : ${LANG_FORTRAN:=true} : ${LANG_ADA:=true} -LIBGOMP=true -LIBGCC=true -LIBATOMIC=true -LIBITM=true -if [ "$CHOST" != "$CTARGET" ] && [ -n "$CHOST" -a -n "$CTARGET" ]; then - if [ "$BOOTSTRAP" ]; then - LANG_CXX=false - LANG_ADA=false - LIBGCC=false - _builddir="$srcdir/build-cross-pass2" - else - _builddir="$srcdir/build-cross-final" - fi - LANG_OBJC=false - LANG_JAVA=false - LANG_GO=false - LANG_FORTRAN=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 - # _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS. - export CFLAGS="$CPPFLAGS $CFLAGS" - export CXXFLAGS="$CPPFLAGS $CXXFLAGS" - unset CPPFLAGS - [ -z "$CFLAGS_FOR_TARGET" ] && export CFLAGS_FOR_TARGET=" " - [ -z "$CXXFLAGS_FOR_TARGET" ] && export CXXFLAGS_FOR_TARGET=" " - [ -z "$LDFLAGS_FOR_TARGET" ] && export LDFLAGS_FOR_TARGET=" " - - STRIP_FOR_TARGET="$CTARGET-strip" -elif [ "$CBUILD" != "$CHOST" ] && [ -n "$CBUILD" -a -n "$CHOST" ]; then +if [ "$CBUILD" != "$CHOST" ]; then # fixup flags. seems gcc treats CPPFLAGS as global without # _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS. export CFLAGS="$CPPFLAGS $CFLAGS" @@ -79,51 +39,34 @@ elif [ "$CBUILD" != "$CHOST" ] && [ -n "$CBUILD" -a -n "$CHOST" ]; then export CXXFLAGS_FOR_BUILD=" " export LDFLAGS_FOR_BUILD=" " - # Languages that do not need bootstrapping LANG_OBJC=false LANG_JAVA=false LANG_GO=false LANG_FORTRAN=false - - STRIP_FOR_TARGET=${CROSS_COMPILE}strip - _builddir="$srcdir/build-cross-native" -else - STRIP_FOR_TARGET=${CROSS_COMPILE}strip - _builddir="$srcdir/build" + # ada needs bootstrapping + LANG_ADA=true fi -if $LIBGCC; then - subpackages="$subpackages libgcc" -fi -if $LIBGOMP; then - depends="$depends libgomp=$_gccrel" - subpackages="$subpackages libgomp" -fi - -_languages=c -if $LANG_CXX; then - subpackages="$subpackages libstdc++:libcxx g++$_cross:gpp" - _languages="$_languages,c++" -fi +_languages=c,c++ if $LANG_OBJC; then - subpackages="$subpackages libobjc gcc-objc$_cross:objc" + subpackages="$subpackages libobjc $pkgname-objc" _languages="$_languages,objc" fi if $LANG_JAVA; then - subpackages="$subpackages libgcj gcc-java$_cross:java" + subpackages="$subpackages libgcj $pkgname-java" makedepends="$makedepends paxctl" _languages="$_languages,java" fi if $LANG_GO; then - subpackages="$subpackages libgo gcc-go$_cross:go" + subpackages="$subpackages libgo $pkgname-go" _languages="$_languages,go" fi if $LANG_FORTRAN; then - subpackages="$subpackages libgfortran libquadmath gfortran$_cross:gfortran" + subpackages="$subpackages libgfortran libquadmath gfortran" _languages="$_languages,fortran" fi if $LANG_ADA; then - subpackages="$subpackages libgnat gcc-gnat$_cross:gnat" + subpackages="$subpackages libgnat $pkgname-gnat" _languages="$_languages,ada" makedepends="$makedepends gcc-gnat" fi @@ -144,7 +87,6 @@ source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2 gcc-spec-env.patch gcc-4.8-musl.patch - gcc-4.8-musl-fix-arm-interp.patch libgcc-always-build-gcceh.a.patch pt_gnu_eh_frame.patch uclibc-getipinfo.patch @@ -155,20 +97,16 @@ source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2 gcc-4.8-build-args.patch fix-cxxflags-passing.patch - fix-cxxflags-for-target.patch ada-no-pie.patch - ada-fixes.patch - ada-crossbuild.patch - ada-shared.patch - ada-musl.patch " # gcc-go.patch # we build out-of-tree _gccdir="$srcdir"/gcc-$pkgver -_gcclibdir=/usr/lib/gcc/${CTARGET}/$pkgver -_gcclibexec=/usr/libexec/gcc/${CTARGET}/$pkgver +_builddir="$srcdir/build" +_gcclibdir=/usr/lib/gcc/${CHOST:-$_chost}/$pkgver +_gcclibexec=/usr/libexec/gcc/${CHOST:-$_chost}/$pkgver prepare() { cd "$_gccdir" @@ -223,71 +161,55 @@ prepare() { build() { local _dynamic_linker= local _arch_configure= - local _libc_configure= - local _cross_configure= - local _bootstrap_configure= local _symvers= - cd "$_gccdir" - if [ -z "$CFLAGS_FOR_TARGET" ]; then - export CFLAGS="-fno-stack-protector $CFLAGS" - export CXXFLAGS="-fno-stack-protector $CXXFLAGS" - else - export CFLAGS_FOR_TARGET="-fno-stack-protector $CFLAGS_FOR_TARGET" - export CXXFLAGS_FOR_TARGET="-fno-stack-protector $CXXFLAGS_FOR_TARGET" - fi - - case "$CTARGET" in - x86_64-*-uclibc) _dynamic_linker="--with-dynamic-linker=ld64-uClibc.so.$_uclibc_abiver" ;; - *-uclibc) _dynamic_linker="--with-dynamic-linker=ld-uClibc.so.$_uclibc_abiver" ;; - x86_64-*-gnu) _dynamic_linker="--with-dynamic-linker=ld-linux-x86-64.so.2" ;; - *-gnu) _dynamic_linker="--with-dynamic-linker=ld-linux.so.2" ;; - esac + export CFLAGS="-fno-stack-protector $CFLAGS" + [ -z "$CBUILD" ] && CBUILD="$CHOST" + [ -z "$CTARGET" ] && CTARGET="$CHOST" - case "$CTARGET_ARCH" in - armhf) _arch_configure="--with-float=hard";; + case "$CHOST" in + x86_64-*-uclibc) + _dynamic_linker="--with-dynamic-linker=ld64-uClibc.so.$_uclibc_abiver" + ;; + *-uclibc) + _dynamic_linker="--with-dynamic-linker=ld-uClibc.so.$_uclibc_abiver" + ;; + x86_64-*-gnu) + _dynamic_linker="--with-dynamic-linker=ld-linux-x86-64.so.2" + ;; + *-gnu) + _dynamic_linker="--with-dynamic-linker=ld-linux.so.2" + ;; + *) _dynamic_linker= + _symvers="--disable-symvers" + ;; esac - case "$CTARGET_LIBC" in - musl) - # musl does not support mudflap - _libc_configure="--disable-libssp --disable-libmudflap" - _symvers="--disable-symvers" - export gcc_cv_libc_provides_ssp=yes - export libat_cv_have_ifunc=no - ;; - uclibc) - _libc_configure="--disable-libssp --without-system-libunwind" - export gcc_cv_libc_provides_ssp=yes - export libat_cv_have_ifunc=no - ;; + # 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 - if [ "$CHOST" != "$CTARGET" ]; then - _cross_configure="--disable-bootstrap --enable-clocale=gnu" - _cross_configure="$_cross_configure --with-sysroot=$CBUILDROOT" + # --enable-target-optspace is broken on powerpc + if [ "$CARCH" != "powerpc" ]; then + _arch_configure="$_arch_configure --enable-target-optspace" fi - case "$BOOTSTRAP" in - noheaders) - _bootstrap_configure="--with-newlib --without-headers --disable-shared --enable-threads=no" - ;; - nolibc) - _bootstrap_configure="--with-newlib --disable-shared --enable-threads=no --disable-libquadmath" - ;; - *) - _bootstrap_configure="--enable-shared --enable-threads --enable-tls" - ;; + case "$CARCH" in + arm*) _arch_configure="$_arch_configure --with-float=hard";; esac - if ! $LIBGOMP; then - _bootstrap_configure="$_bootstrap_configure --disable-libgomp" - fi - if ! $LIBATOMIC; then - _bootstrap_configure="$_bootstrap_configure --disable-libatomic" - fi - if ! $LIBITM; then - _bootstrap_configure="$_bootstrap_configure --disable-libitm" + if [ "${CHOST#*musl}" != "$CHOST" ]; then + # musl does not support mudflap + _arch_configure="$_arch_configure --disable-mudflap --disable-libmudflap" + # gcc does not detect musl's ssp support, force it + export gcc_cv_libc_provides_ssp=yes + else + _arch_configure="$_arch_configure --without-system-libunwind" fi msg "Building the following:" @@ -295,14 +217,9 @@ build() { echo " CBUILD=$CBUILD" echo " CHOST=$CHOST" echo " CTARGET=$CTARGET" - echo " CTARGET_ARCH=$CTARGET_ARCH" - echo " CTARGET_LIBC=$CTARGET_LIBC" echo " languages=$_languages" echo " dynamic_linker=$_dynamic_linker" echo " arch_configure=$_arch_configure" - echo " libc_configure=$_libc_configure" - echo " cross_configure=$_cross_configure" - echo " bootstrap_configure=$_bootstrap_configure" echo "" mkdir -p "$_builddir" @@ -318,6 +235,7 @@ build() { --disable-build-with-cxx \ --disable-checking \ --disable-fixed-point \ + --disable-libssp \ --disable-libstdcxx-pch \ --disable-multilib \ --disable-nls \ @@ -328,10 +246,10 @@ build() { --enable-esp \ --enable-cloog-backend \ --enable-languages=$_languages \ + --enable-shared \ $_arch_configure \ - $_libc_configure \ - $_cross_configure \ - $_bootstrap_configure \ + --enable-tls \ + --enable-threads \ $_dynamic_linker \ --with-dynamic-linker-prefix=/lib \ --with-system-zlib \ @@ -367,7 +285,7 @@ package() { || return 1 # strip debug info from some statib libs - ${STRIP_FOR_TARGET} -g `find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + ${CROSS_COMPILE}strip -g `find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.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 \ @@ -396,23 +314,13 @@ package() { ln -s ../../../../${i##*/} $i || return 1 done 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 - fi } libcxx() { pkgdesc="GNU C++ standard runtime library" depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib - mv "$pkgdir"/usr/lib/libstdc++.so.* "$subpkgdir"/usr/lib/ || \ - cp "$pkgdir"/usr/$CTARGET/lib/libstdc++.so.* "$subpkgdir"/usr/lib/ || \ - return 1 + mv "$pkgdir"/usr/lib/libstdc++.so.* "$subpkgdir"/usr/lib/ } gpp() { @@ -443,7 +351,6 @@ objc() { pkgdesc="GNU Objective-C" replaces="gcc" depends="libc-dev gcc=$_gccrel libobjc=$_gccrel" - mkdir -p "$subpkgdir"/$_gcclibdir/include \ "$subpkgdir"/usr/lib \ || return 1 @@ -456,20 +363,14 @@ objc() { libgcc() { pkgdesc="GNU C compiler runtime libraries" depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib - mv "$pkgdir"/usr/lib/libgcc_s.so.* "$subpkgdir"/usr/lib/ || \ - cp "$pkgdir"/usr/$CTARGET/lib/libgcc_s.so.* "$subpkgdir"/usr/lib/ || \ - return 1 + mv "$pkgdir"/usr/lib/libgcc_s.so.* "$subpkgdir"/usr/lib/ || return 1 } libgomp() { pkgdesc="GCC shared-memory parallel programming API library" depends= replaces="gcc" - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libgomp.so.* "$subpkgdir"/usr/lib/ } @@ -477,7 +378,6 @@ libgomp() { java() { pkgdesc="Java support for GCC" depends="zlib-dev gcc=$_gccrel libgcj=$_gccrel" - paxctl -c -pm "$pkgdir"/$_gcclibexec/ecj1 || return 1 mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib cd "$pkgdir"/usr/bin @@ -503,8 +403,6 @@ libgcj() { # libgcj_bc.so moved from gcc-java to libgcj replaces="gcc-java" depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/bin cd "$pkgdir"/usr/bin paxctl -c -pmse "$pkgdir"/usr/bin/gij || return 1 @@ -535,8 +433,6 @@ libgcj() { libgo() { pkgdesc="Go runtime library for GCC" depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/ } @@ -544,7 +440,6 @@ libgo() { go() { pkgdesc="Go support for GCC" depends="gcc=$_gccrel libgo=$_gccrel" - mkdir -p "$subpkgdir"/$_gcclibexec \ "$subpkgdir"/usr/lib \ "$subpkgdir"/usr/bin || return 1 @@ -560,8 +455,6 @@ go() { libgfortran() { pkgdesc="Fortran runtime library for GCC" depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/ } @@ -570,8 +463,6 @@ libquadmath() { replaces="gcc" pkgdesc="128-bit math library for GCC" depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/ } @@ -598,26 +489,20 @@ gfortran() { libgnat() { pkgdesc="GNU Ada 95 runtime shared libraries" - depends= - CARCH="$CTARGET_ARCH" - mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/ } gnat() { pkgdesc="Ada 95 support for GCC" - depends="gcc=$_gccrel" - [ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel" - mkdir -p "$subpkgdir"/$_gcclibexec \ "$subpkgdir"/$_gcclibdir \ "$subpkgdir"/usr/bin \ || return 1 - mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/ \ + mv "$pkgdir"/$_gcclibexec/gnat* "$subpkgdir"/$_gcclibexec/ \ || return 1 - mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/ || return 1 - mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/ || return 1 + mv "$pkgdir"/$_gcclibdir/ada* "$subpkgdir"/$_gcclibdir/ || return 1 + mv "$pkgdir"/usr/bin/gnat* "$subpkgdir"/usr/bin/ || return 1 } md5sums="3b2386c114cd74185aa3754b58a79304 gcc-4.8.1.tar.bz2 @@ -633,8 +518,7 @@ d8692c56f04b92667096f59d843e95c5 51_all_libiberty-pic.patch ca4f395856bbb80d23398246572c30fa 67_all_gcc-poison-system-directories.patch 9c443d9d0fba2ce97b12f674b7d14c7e 74_all_gcc48_cloog-dl.patch a695d7648509b4f8e18b389a19e6037c gcc-spec-env.patch -eb425b34df5a1646f27a7285e1a78916 gcc-4.8-musl.patch -f925101cc9d21435c97a0bbd3542bd81 gcc-4.8-musl-fix-arm-interp.patch +cd8ef37289815c939adc954ba95e9294 gcc-4.8-musl.patch 504c7dd8651c5d98229892c4cd9ea591 libgcc-always-build-gcceh.a.patch ab83248e10b2bf4b3d9240de0fefb52b pt_gnu_eh_frame.patch 6cc2385c5bbd6d0da6eaedd53c8bf547 uclibc-getipinfo.patch @@ -644,12 +528,7 @@ ab83248e10b2bf4b3d9240de0fefb52b pt_gnu_eh_frame.patch 2e2b787bb988d9007c9f7ce42178dfe6 gcc-pure64.patch 0a2041bbf83648e6c4f6d3484f7249ca gcc-4.8-build-args.patch 4aea37d334ab00bb6bba37cd8c481367 fix-cxxflags-passing.patch -87684048ecaaf0e046983bc2782292dd fix-cxxflags-for-target.patch -750e903d5a53ba32618c2142cdd914e1 ada-no-pie.patch -2e946abc09924d91988a9b7fd5824ef3 ada-fixes.patch -d77c99bf7c03d082a540aaba1193be40 ada-crossbuild.patch -20e2731c02ce50739ebdead2795f9c41 ada-shared.patch -4e47bdae120129462244da0d89a573b3 ada-musl.patch" +ac802687c02ca78687c8e612277e566a ada-no-pie.patch" sha256sums="545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813 gcc-4.8.1.tar.bz2 4aa0ab0f114b0ff8af5d0c19c18930e3fcd5e5b0956f56ca24e58e5a243964b1 gcc-4.8.1-piepatches-v0.5.6.tar.bz2 f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2 gcc-4.4.3-specs-0.2.0.tar.bz2 @@ -663,8 +542,7 @@ da6bbb5dc654d5e1df8ecae5c9ebb56265426c405931f14f5878248b8c79f78d 51_all_libiber 8ba9dec0ecc2620c8ab1dfbeb0708dd4c29021e57d2e0ea23720108b1db3462e 67_all_gcc-poison-system-directories.patch 7d129093a6682418da9313611a90e3052855d8af4505d401f7b8b6a64e8f7b17 74_all_gcc48_cloog-dl.patch 64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a gcc-spec-env.patch -855ba44a4060a70213c39c6739751e8bfa8a8069f6a9712130df9a9b0f1070bc gcc-4.8-musl.patch -6693a67eeff123e0261720463c51e8083bba6e93fed1e65f245731d23e8ff166 gcc-4.8-musl-fix-arm-interp.patch +8b85ebc6603a1b3488e1eb800fdb00168515ae154006398a1a08af57c1d3b5b5 gcc-4.8-musl.patch 1975189156d70f5428cb7f1516533965d1c8734f3009fc89a9b8e289b72326f1 libgcc-always-build-gcceh.a.patch 78e75cb378bdfe870c98ab3cffef37f54be729d3912979191f27ca00651ad6c4 pt_gnu_eh_frame.patch 53184f842477569973c232dac7c85e71b0018cbe5c4962f95dd9e0273f42083e uclibc-getipinfo.patch @@ -674,12 +552,7 @@ f3863b997acf8fdf5ad1d3626b41a8a0670b896505e9b7afb517916c7599fb1c gcc-4.8-dynami f5473c6aea96d5137defd68898ba31042944a3f3ed26c05b964a40bd876c6f47 gcc-pure64.patch bd7a6f514fcc457f29e5fda157203f3bcd013aeba5d53b3459196eef3ce752ab gcc-4.8-build-args.patch a395ba4cf047c48cac56985726fddf0948f4425c9f1a0c9ddba1812b2b3d8300 fix-cxxflags-passing.patch -a5678380e887dbf600c59273d382e81c10f89d28e422238a617d0a43ad5c5a69 fix-cxxflags-for-target.patch -de3c8606015ebda0dc574f904aa4d23c44c5e261b34dce2ef4d08eed21cb99b9 ada-no-pie.patch -556fcc3937d067e177acee7bbeeff80b0c5d445280c82e5af590db0f68143ebb ada-fixes.patch -324524490c60d84ef040f79589e0f93fbaeb253dbe031484afaf963b881047e9 ada-crossbuild.patch -d6c7fc1820a4fa285297c299c255fe2f19ce1695486f20edd098252a97545e6a ada-shared.patch -f20c34f3e0a1bf717f5e22fd66b57c8b69f0411d063203c017ed8209f349e1d4 ada-musl.patch" +a20f8ba10f6ee94c6af44752d9c43faf1c1ff3c631f18e3d85e2a7f2ca7f1e0d ada-no-pie.patch" sha512sums="1becc874aad77a469069b6d9da4158aae9e013e24afa9364fe4feff9a5094d0673ee7694b3840e892c860f73a56b3ece6174338a8214438c42b9f86dd6c35ea7 gcc-4.8.1.tar.bz2 274e16ef5136348415898d4e5a3bc71763078de8ae7c18645e8b07f54d705609b08c0efadbdb55117fdfb5f6490529b446d09def448174c2747372829d029a9d gcc-4.8.1-piepatches-v0.5.6.tar.bz2 779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517 gcc-4.4.3-specs-0.2.0.tar.bz2 @@ -693,8 +566,7 @@ c6c314a2d24531b4286436dec7189f83e443c4cfa9b88339a4c324c2d40812d766ed44dcfd4a0c3b 47331f034e44aea16f1cbb67d9176f8ce8832d6cb7c13a8d3b438efaa3269cee177bd1dd8a9f353ac19cc6b3db436a995de9ae66d493d2772188630b09fbff51 67_all_gcc-poison-system-directories.patch 6e19b2dc43cff03a6b3ca4e18f76dcfd5b0682c15aac493e94f5c679f5b0a585fbaa09345d200182c0f47541ced2d714b78d65da130bc7d2e9f810362e07037d 74_all_gcc48_cloog-dl.patch ce9c1f923e2c6d17347ec2d3d8482351a9644194b2753627389294d43bb4f11b9c2ef41eda1b46ad83d09901a0bedebd5b6b8a57a198646030ab61e8d2d8cb48 gcc-spec-env.patch -7ef97a8c79e3236ecd275e94ab87e65286744e8779d48f65c96fd456970abae483f414fbf1e201df12ae2e400fbab5376163dc090e6d9c2740873ed49f6ace40 gcc-4.8-musl.patch -8c24d976b89b64f6c57a82b6c32f120f8bb4b8afef06ef86772df14309e04f5b3a62dbc7a953813666031efbedaae862bb3aa4d5242c7511231ecf61f87a7d77 gcc-4.8-musl-fix-arm-interp.patch +86ffdd09993004bc093233fcb1ea77d3a17965ccc0e09c59276b8f9e8ad79ae90eb6c6a3942472c638e9de31d2c83a25a46eee0903877033b46447e9f90258f8 gcc-4.8-musl.patch d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch 8464197f01d107872dfa6b47e86e95ae8d75c053527bafbdb7a86bcc7aff4bc5b20a8ec40d6e48d1ad455b0187a3cba9db337cff6c0a6245507c4533e4832d99 pt_gnu_eh_frame.patch e3edf75df1f27af8771bd263e1bd607f6207c4eb5b2a5e11032577deba43ea201825e3b5008a720105f24e49d2821dd77a61c7ceba7ed91b3621c0dbd9292fc6 uclibc-getipinfo.patch @@ -704,9 +576,4 @@ e1d6a450dfb40b134ad7f759c4c10174d2490b0093fe47cb33479245f26a3a8c54ebcf6255943c0c 4a5aeff0399782c752e6e3f2f48d984b2056dfb5d229b23a24eee1562d241339989b2203f139821cfc03c9b25c9bd7da6ccbbdc7a09d242e4de7f0d606c6f63c gcc-pure64.patch abe9aaf9aa956058d0386a4396a511d176a46bb3906b90e952383646cdc158cbeb0a5dc616a1ccb1ca7d49fd0b5e351532aa15a3b13362abbf1ca4266f54a687 gcc-4.8-build-args.patch 35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch -c731f4aaaa65c8950e1b2bd9331410f92d378fd8c7e718532dccaa27ee11984d51d74216c3611e89a802325b81d7f184116839dce2dab50cae9b643c20a82fe7 fix-cxxflags-for-target.patch -4938a38d6ffebebcd8b07a60e7d300935ef57056e5820145c6668dd5141e272d73a67a1bfe84dafda77212058eee768a03aba4356e52867b40a9ba9216a96714 ada-no-pie.patch -0541b4e31164d3fed653e811c1ededcf0dc578220f11f4ca3d8a293b2cf1ebc62b4259afd103a5d24092cc738a5760efdd5310a6383d0d8152309562d04b0525 ada-fixes.patch -4d411563f6a3ea06bc3a1f4fa77d10250cc275e2496df6039d93f9b2229bc1f5334e484494dbd08881cf046f98aaca8bdddaa6b4a8f947b936d0bdc9e91f2f2b ada-crossbuild.patch -3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch -7f6dc922a2c80b1c8c5ed0b6d6e4c1e672984f54bb217f28517929af129892e42c45f7aea4b9c50d8bbc008384b7ae19e1475c79f08b78775709720fe317c8f3 ada-musl.patch" +f00e0d57154fd7c0e121fa862b85b86943874edab8bc10e27a8b2bf363e55ea8690c091d8a07695493721a0185d52723e9f02279f7e618ece655e29b4e52b930 ada-no-pie.patch" diff --git a/main/gcc/ada-crossbuild.patch b/main/gcc/ada-crossbuild.patch deleted file mode 100644 index d3d2280cb6..0000000000 --- a/main/gcc/ada-crossbuild.patch +++ /dev/null @@ -1,49 +0,0 @@ -Based on http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55946 - ---- gcc-4.8.1/libada/configure.orig -+++ gcc-4.8.1/libada/configure -@@ -2951,9 +2951,7 @@ - - - # Determine what to build for 'gnatlib' --if test $build = $target \ -- && test ${enable_shared} = yes ; then -- # Note that build=target is almost certainly the wrong test; FIXME -+if test ${enable_shared} = yes ; then - default_gnatlib_target="gnatlib-shared" - else - default_gnatlib_target="gnatlib-plain" ---- gcc-4.8.1/gcc/ada/gcc-interface/Make-lang.in.orig -+++ gcc-4.8.1/gcc/ada/gcc-interface/Make-lang.in -@@ -625,7 +625,7 @@ - ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb - -$(MKDIR) ada/doctools - $(CP) $^ ada/doctools -- cd ada/doctools && $(GNATMAKE) -q xgnatugn -+ cd ada/doctools && gnatmake -q xgnatugn - - # Note that doc/gnat_ugn.texi and doc/projects.texi do not depend on - # xgnatugn being built so we can distribute a pregenerated doc/gnat_ugn.info ---- gcc-4.8.1/gnattools/Makefile.in.orig -+++ gcc-4.8.1/gnattools/Makefile.in -@@ -32,6 +32,8 @@ - # Nonstandard autoconf-set variables. - LN_S=@LN_S@ - target_noncanonical=@target_noncanonical@ -+build=@build@ -+host=@host@ - - # Variables for the user (or the top level) to override. - exeext = @EXEEXT@ -@@ -183,7 +185,11 @@ - # put the host RTS dir first in the PATH to hide the default runtime - # files that are among the sources - # FIXME: This should be done in configure. -+ifeq ($(host), $(build)) - RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib ))) -+else -+RTS_DIR:=$(strip $(subst \,/,$(shell $(host)-gnatls -v | grep adalib ))) -+endif - gnattools-cross: $(GCC_DIR)/stamp-tools - # gnattools1-re - $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ diff --git a/main/gcc/ada-fixes.patch b/main/gcc/ada-fixes.patch deleted file mode 100644 index db9a3e3ebe..0000000000 --- a/main/gcc/ada-fixes.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- gcc-4.8.1/gcc/ada/terminals.c.orig -+++ gcc-4.8.1/gcc/ada/terminals.c -@@ -984,13 +984,6 @@ - #include <stdio.h> - #include <stdlib.h> - --/* On some system termio is either absent or including it will disable termios -- (HP-UX) */ --#if ! defined (__hpux__) && ! defined (FREEBSD) && \ -- ! defined (__APPLE__) && ! defined(__rtems__) --# include <termio.h> --#endif -- - #include <sys/ioctl.h> - #include <termios.h> - #include <fcntl.h> -@@ -1032,10 +1025,8 @@ - */ - - /* Configurable part */ --#if defined (__APPLE__) || defined (FREEBSD) -+#if defined (__APPLE__) || defined (FREEBSD) || defined(linux) - #define USE_OPENPTY --#elif defined (linux) --#define USE_GETPT - #elif defined (sun) - #define USE_CLONE_DEVICE "/dev/ptmx" - #elif defined (_AIX) -@@ -1179,7 +1170,7 @@ - int status; - - /* ensure that s is filled with 0 */ -- bzero (&s, sizeof (&s)); -+ bzero (&s, sizeof (s)); - - /* Get the current terminal settings */ - status = tcgetattr (fd, &s); ---- gcc-4.8.1/gcc/ada/cal.c.orig -+++ gcc-4.8.1/gcc/ada/cal.c -@@ -65,6 +65,7 @@ - #include <time.h> - #else - #include <sys/time.h> -+#include <time.h> - #endif - - #ifdef __MINGW32__ diff --git a/main/gcc/ada-musl.patch b/main/gcc/ada-musl.patch deleted file mode 100644 index 8255e3b36e..0000000000 --- a/main/gcc/ada-musl.patch +++ /dev/null @@ -1,118 +0,0 @@ ---- gcc-4.8.1/gcc/ada/adaint.c.orig -+++ gcc-4.8.1/gcc/ada/adaint.c -@@ -67,6 +67,11 @@ - #include <sys/pstat.h> - #endif - -+#if defined (linux) -+#define _GNU_SOURCE 1 -+#include <sched.h> -+#endif -+ - #ifdef VMS - #define _POSIX_EXIT 1 - #define HOST_EXECUTABLE_SUFFIX ".exe" -@@ -3782,8 +3787,6 @@ - return (void *) syscall (__NR_gettid); - } - --#include <sched.h> -- - /* glibc versions earlier than 2.7 do not define the routines to handle - dynamically allocated CPU sets. For these targets, we use the static - versions. */ -@@ -3792,7 +3795,7 @@ - - /* Dynamic cpu sets */ - --cpu_set_t *__gnat_cpu_alloc (size_t count) -+void *__gnat_cpu_alloc (size_t count) - { - return CPU_ALLOC (count); - } -@@ -3802,30 +3805,30 @@ - return CPU_ALLOC_SIZE (count); - } - --void __gnat_cpu_free (cpu_set_t *set) -+void __gnat_cpu_free (void *set) - { -- CPU_FREE (set); -+ CPU_FREE ((cpu_set_t *) set); - } - --void __gnat_cpu_zero (size_t count, cpu_set_t *set) -+void __gnat_cpu_zero (size_t count, void *set) - { -- CPU_ZERO_S (count, set); -+ CPU_ZERO_S (count, (cpu_set_t *) set); - } - --void __gnat_cpu_set (int cpu, size_t count, cpu_set_t *set) -+void __gnat_cpu_set (int cpu, size_t count, void *set) - { - /* Ada handles CPU numbers starting from 1, while C identifies the first - CPU by a 0, so we need to adjust. */ -- CPU_SET_S (cpu - 1, count, set); -+ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set); - } - - #else - - /* Static cpu sets */ - --cpu_set_t *__gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED) -+void *__gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED) - { -- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t)); -+ return xmalloc (sizeof (cpu_set_t)); - } - - size_t __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED) -@@ -3833,21 +3836,21 @@ - return sizeof (cpu_set_t); - } - --void __gnat_cpu_free (cpu_set_t *set) -+void __gnat_cpu_free (void *set) - { - free (set); - } - --void __gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) -+void __gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set) - { -- CPU_ZERO (set); -+ CPU_ZERO ((cpu_set_t *) set); - } - --void __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) -+void __gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set) - { - /* Ada handles CPU numbers starting from 1, while C identifies the first - CPU by a 0, so we need to adjust. */ -- CPU_SET (cpu - 1, set); -+ CPU_SET (cpu - 1, (cpu_set_t *) set); - } - #endif - #endif ---- gcc-4.8.1/gcc/ada/adaint.h.orig -+++ gcc-4.8.1/gcc/ada/adaint.h -@@ -259,13 +259,11 @@ - - /* Routines for interface to required CPU set primitives */ - --#include <sched.h> -- --extern cpu_set_t *__gnat_cpu_alloc (size_t); -+extern void * __gnat_cpu_alloc (size_t); - extern size_t __gnat_cpu_alloc_size (size_t); --extern void __gnat_cpu_free (cpu_set_t *); --extern void __gnat_cpu_zero (size_t, cpu_set_t *); --extern void __gnat_cpu_set (int, size_t, cpu_set_t *); -+extern void __gnat_cpu_free (void *); -+extern void __gnat_cpu_zero (size_t, void *); -+extern void __gnat_cpu_set (int, size_t, void *); - #endif - - #if defined (_WIN32) diff --git a/main/gcc/ada-no-pie.patch b/main/gcc/ada-no-pie.patch index a38db87196..e5bdfdea1e 100644 --- a/main/gcc/ada-no-pie.patch +++ b/main/gcc/ada-no-pie.patch @@ -1,5 +1,5 @@ ---- gcc-4.8.1/gcc/ada/gcc-interface/Makefile.in.orig -+++ gcc-4.8.1/gcc/ada/gcc-interface/Makefile.in +--- ./gcc/ada/gcc-interface/Makefile.in.orig 2013-02-06 11:19:08.000000000 +0000 ++++ ./gcc/ada/gcc-interface/Makefile.in 2013-08-30 07:52:29.016804483 +0000 @@ -2462,23 +2462,23 @@ gnatchop gnatcmd gnatkr gnatls gnatprep gnatxref gnatfind gnatname \ gnatclean -bargs $(ADA_INCLUDES) $(GNATBIND_FLAGS) @@ -33,24 +33,6 @@ ../../gnatsym$(exeext): ../stamp-tools $(GNATMAKE) -c $(ADA_INCLUDES) gnatsym --GCC="$(CC) $(ALL_ADAFLAGS)" -@@ -2500,7 +2500,7 @@ - $(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatmake --GCC="$(CC) $(ALL_ADAFLAGS)" - $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatmake - $(GNATLINK) -v gnatmake -o ../../gnatmake$(exeext) \ -- --GCC="$(GCC_LINK)" $(TOOLS_LIBS) -+ --GCC="$(GCC_LINK)" -fno-PIE $(TOOLS_LIBS) - - # Note the use of the "mv" command in order to allow gnatlink to be linked with - # with the former version of gnatlink itself which cannot override itself. -@@ -2510,7 +2510,7 @@ - $(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatlink --GCC="$(CC) $(ALL_ADAFLAGS)" - $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatlink - $(GNATLINK) -v gnatlink -o ../../gnatlinknew$(exeext) \ -- --GCC="$(GCC_LINK)" $(TOOLS_LIBS) -+ --GCC="$(GCC_LINK)" -fno-PIE $(TOOLS_LIBS) - $(MV) ../../gnatlinknew$(exeext) ../../gnatlink$(exeext) - - # Needs to be built with CC=gcc @@ -2519,11 +2519,11 @@ # Likewise for the tools diff --git a/main/gcc/ada-shared.patch b/main/gcc/ada-shared.patch deleted file mode 100644 index 6f1c16aff9..0000000000 --- a/main/gcc/ada-shared.patch +++ /dev/null @@ -1,30 +0,0 @@ -Index: b/gcc/ada/link.c -=================================================================== ---- a/gcc/ada/link.c -+++ b/gcc/ada/link.c -@@ -105,9 +105,9 @@ - - #elif defined (__FreeBSD__) - const char *__gnat_object_file_option = "-Wl,@"; --const char *__gnat_run_path_option = "-Wl,-rpath,"; --char __gnat_shared_libgnat_default = STATIC; --char __gnat_shared_libgcc_default = STATIC; -+const char *__gnat_run_path_option = ""; -+char __gnat_shared_libgnat_default = SHARED; -+char __gnat_shared_libgcc_default = SHARED; - int __gnat_link_max = 8192; - unsigned char __gnat_objlist_file_supported = 1; - const char *__gnat_object_library_extension = ".a"; -@@ -127,9 +127,9 @@ - - #elif defined (linux) || defined(__GLIBC__) - const char *__gnat_object_file_option = "-Wl,@"; --const char *__gnat_run_path_option = "-Wl,-rpath,"; --char __gnat_shared_libgnat_default = STATIC; --char __gnat_shared_libgcc_default = STATIC; -+const char *__gnat_run_path_option = ""; -+char __gnat_shared_libgnat_default = SHARED; -+char __gnat_shared_libgcc_default = SHARED; - int __gnat_link_max = 8192; - unsigned char __gnat_objlist_file_supported = 1; - const char *__gnat_object_library_extension = ".a"; diff --git a/main/gcc/fix-cxxflags-for-target.patch b/main/gcc/fix-cxxflags-for-target.patch deleted file mode 100644 index 24dafe74be..0000000000 --- a/main/gcc/fix-cxxflags-for-target.patch +++ /dev/null @@ -1,5 +0,0 @@ ---- gcc-4.8.1/config/mt-gnu.orig -+++ gcc-4.8.1/config/mt-gnu -@@ -1 +1 @@ --CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -D_GNU_SOURCE -+CXXFLAGS_FOR_TARGET := $(CXXFLAGS_FOR_TARGET) -D_GNU_SOURCE diff --git a/main/gcc/gcc-4.8-musl-fix-arm-interp.patch b/main/gcc/gcc-4.8-musl-fix-arm-interp.patch deleted file mode 100644 index 6629d74318..0000000000 --- a/main/gcc/gcc-4.8-musl-fix-arm-interp.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -64,7 +64,10 @@ - - /* musl has no "classic" (i.e. broken) mode */ - #undef MUSL_DYNAMIC_LINKER --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-arm.so.1" -+#define MUSL_DYNAMIC_LINKER \ -+ "%{mfloat-abi=hard:/lib/ld-musl-armhf.so.1}" \ -+ "%{mfloat-abi=soft*:/lib/ld-musl-arm.so.1}" \ -+ "%{!mfloat-abi=*:/lib/ld-musl-armhf.so.1}" - - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ diff --git a/main/gcc/gcc-4.8-musl.patch b/main/gcc/gcc-4.8-musl.patch index dcc9ad71ad..4c32a3e589 100644 --- a/main/gcc/gcc-4.8-musl.patch +++ b/main/gcc/gcc-4.8-musl.patch @@ -1,3 +1,4 @@ +11b7c7e47a01 tip # HG changeset patch # Parent 6b1b8174ce29396d7dbd482296f43eba38948222 Support for arm-linux-musl. @@ -31,19 +32,6 @@ diff -r 6b1b8174ce29 libitm/config/arm/hwcap.cc #include <elf.h> static void __attribute__((constructor)) ---- a/gcc/configure -+++ b/gcc/configure -@@ -26970,6 +26970,9 @@ - gcc_cv_target_dl_iterate_phdr=no - fi - ;; -+ *-linux-musl*) -+ gcc_cv_target_dl_iterate_phdr=yes -+ ;; - esac - - if test x$gcc_cv_target_dl_iterate_phdr = xyes; then - # HG changeset patch # Parent 2b29df135cf04fe23c38301f6d0fc5796366aecf Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker. @@ -192,246 +180,6 @@ diff -r 2b94537ce249 libgomp/config/posix/time.c #include <unistd.h> #if TIME_WITH_SYS_TIME # HG changeset patch -# Parent 94e435662aff38e86c9ca0dff4bbf451e0190b34 -Get rid of ever-broken fixincludes on musl. - - -diff -r 94e435662aff -r e27957848dc8 fixincludes/mkfixinc.sh ---- a/fixincludes/mkfixinc.sh Sat Jul 27 23:37:20 2013 -0400 -+++ b/fixincludes/mkfixinc.sh Sat Jul 27 23:43:03 2013 -0400 -@@ -19,7 +19,8 @@ - powerpc-*-eabi* | \ - powerpc-*-rtems* | \ - powerpcle-*-eabisim* | \ -- powerpcle-*-eabi* ) -+ powerpcle-*-eabi* | \ -+ *-musl* ) - # IF there is no include fixing, - # THEN create a no-op fixer and exit - (echo "#! /bin/sh" ; echo "exit 0" ) > ${target} -# HG changeset patch -# Parent 8eb8b35e72f3987450f5050db45d6e4425084fb5 -libssp is provided in musl libc. - -diff -r 8eb8b35e72f3 gcc/configure ---- a/gcc/configure Mon Aug 26 15:14:02 2013 -0400 -+++ b/gcc/configure Mon Aug 26 15:46:55 2013 -0400 -@@ -26764,7 +26764,8 @@ - gcc_cv_libc_provides_ssp=yes - fi - ;; -- *-*-gnu*) -+ *-*-gnu* | \ -+ *-linux-musl*) - # Avoid complicated tests (see - # <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now - # simply assert that glibc does provide this, which is true for all -diff -r 8eb8b35e72f3 gcc/configure.ac ---- a/gcc/configure.ac Mon Aug 26 15:14:02 2013 -0400 -+++ b/gcc/configure.ac Mon Aug 26 15:46:55 2013 -0400 -@@ -4747,7 +4747,8 @@ - gcc_cv_libc_provides_ssp=yes - fi] - ;; -- *-*-gnu*) -+ *-*-gnu* | \ -+ *-linux-musl*) - # Avoid complicated tests (see - # <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now - # simply assert that glibc does provide this, which is true for all -@@ -4817,6 +4818,9 @@ - gcc_cv_target_dl_iterate_phdr=no - fi - ;; -+ *-linux-musl*) -+ gcc_cv_target_dl_iterate_phdr=yes -+ ;; - esac - GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR]) - if test x$gcc_cv_target_dl_iterate_phdr = xyes; then -diff -r 8eb8b35e72f3 libssp/Makefile.am ---- a/libssp/Makefile.am Mon Aug 26 15:14:02 2013 -0400 -+++ b/libssp/Makefile.am Mon Aug 26 15:46:55 2013 -0400 -@@ -36,7 +36,11 @@ - - AM_CFLAGS = -Wall - -+if LIBSSP_IN_LIBC -+toolexeclib_LTLIBRARIES = libssp_nonshared.la -+else - toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la -+endif - - target_noncanonical = @target_noncanonical@ - libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include -diff -r 8eb8b35e72f3 libssp/Makefile.in ---- a/libssp/Makefile.in Mon Aug 26 15:14:02 2013 -0400 -+++ b/libssp/Makefile.in Mon Aug 26 15:46:55 2013 -0400 -@@ -93,12 +93,17 @@ - libssp_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(libssp_la_LDFLAGS) $(LDFLAGS) -o $@ -+@LIBSSP_IN_LIBC_FALSE@am_libssp_la_rpath = -rpath $(toolexeclibdir) - am_libssp_nonshared_la_OBJECTS = libssp_nonshared_la-ssp-local.lo - libssp_nonshared_la_OBJECTS = $(am_libssp_nonshared_la_OBJECTS) - libssp_nonshared_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(libssp_nonshared_la_CFLAGS) $(CFLAGS) \ - $(libssp_nonshared_la_LDFLAGS) $(LDFLAGS) -o $@ -+@LIBSSP_IN_LIBC_FALSE@am_libssp_nonshared_la_rpath = -rpath \ -+@LIBSSP_IN_LIBC_FALSE@ $(toolexeclibdir) -+@LIBSSP_IN_LIBC_TRUE@am_libssp_nonshared_la_rpath = -rpath \ -+@LIBSSP_IN_LIBC_TRUE@ $(toolexeclibdir) - DEFAULT_INCLUDES = -I.@am__isrc@ - depcomp = $(SHELL) $(top_srcdir)/../depcomp - am__depfiles_maybe = depfiles -@@ -258,7 +263,8 @@ - @LIBSSP_USE_SYMVER_GNU_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = $(srcdir)/ssp.map - @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = ssp.map-sun - AM_CFLAGS = -Wall --toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la -+@LIBSSP_IN_LIBC_FALSE@toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la -+@LIBSSP_IN_LIBC_TRUE@toolexeclib_LTLIBRARIES = libssp_nonshared.la - libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include - nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h - libssp_la_SOURCES = \ -@@ -414,9 +420,9 @@ - rm -f "$${dir}/so_locations"; \ - done - libssp.la: $(libssp_la_OBJECTS) $(libssp_la_DEPENDENCIES) -- $(libssp_la_LINK) -rpath $(toolexeclibdir) $(libssp_la_OBJECTS) $(libssp_la_LIBADD) $(LIBS) -+ $(libssp_la_LINK) $(am_libssp_la_rpath) $(libssp_la_OBJECTS) $(libssp_la_LIBADD) $(LIBS) - libssp_nonshared.la: $(libssp_nonshared_la_OBJECTS) $(libssp_nonshared_la_DEPENDENCIES) -- $(libssp_nonshared_la_LINK) -rpath $(toolexeclibdir) $(libssp_nonshared_la_OBJECTS) $(libssp_nonshared_la_LIBADD) $(LIBS) -+ $(libssp_nonshared_la_LINK) $(am_libssp_nonshared_la_rpath) $(libssp_nonshared_la_OBJECTS) $(libssp_nonshared_la_LIBADD) $(LIBS) - - mostlyclean-compile: - -rm -f *.$(OBJEXT) -diff -r 8eb8b35e72f3 libssp/configure ---- a/libssp/configure Mon Aug 26 15:14:02 2013 -0400 -+++ b/libssp/configure Mon Aug 26 15:46:55 2013 -0400 -@@ -626,6 +626,8 @@ - ssp_have_usable_vsnprintf - EGREP - GREP -+LIBSSP_IN_LIBC_FALSE -+LIBSSP_IN_LIBC_TRUE - LIBSSP_USE_SYMVER_SUN_FALSE - LIBSSP_USE_SYMVER_SUN_TRUE - LIBSSP_USE_SYMVER_GNU_FALSE -@@ -735,6 +737,7 @@ - enable_multilib - enable_dependency_tracking - enable_symvers -+enable_ssp_in_libc - enable_shared - enable_static - with_pic -@@ -1374,6 +1377,7 @@ - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --disable-symvers disable symbol versioning for libssp -+ --enable-ssp-in-libc do not build SSP, as it is in libc - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] -@@ -4206,6 +4210,36 @@ - fi - - -+# musl provides libssp in libc -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libssp is provided in libc" >&5 -+$as_echo_n "checking whether libssp is provided in libc... " >&6; } -+# Check whether --enable-ssp_in_libc was given. -+if test "${enable_ssp_in_libc+set}" = set; then : -+ enableval=$enable_ssp_in_libc; ssp_in_libc=$enableval -+else -+ ssp_in_libc=check -+fi -+ -+if test "x$ssp_in_libc" = "xcheck"; then -+ case "$host" in -+ *-musl*) -+ ssp_in_libc=yes -+ ;; -+ -+ *) -+ ssp_in_libc=no -+ ;; -+ esac -+fi -+ if test "x$ssp_in_libc" = xyes; then -+ LIBSSP_IN_LIBC_TRUE= -+ LIBSSP_IN_LIBC_FALSE='#' -+else -+ LIBSSP_IN_LIBC_TRUE='#' -+ LIBSSP_IN_LIBC_FALSE= -+fi -+ -+ - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 - $as_echo_n "checking for grep that handles long lines and -e... " >&6; } -@@ -10658,7 +10692,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10661 "configure" -+#line 10695 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10764,7 +10798,7 @@ - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10767 "configure" -+#line 10801 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11193,6 +11227,10 @@ - as_fn_error "conditional \"LIBSSP_USE_SYMVER_SUN\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi -+if test -z "${LIBSSP_IN_LIBC_TRUE}" && test -z "${LIBSSP_IN_LIBC_FALSE}"; then -+ as_fn_error "conditional \"LIBSSP_IN_LIBC\" was never defined. -+Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+fi - - : ${CONFIG_STATUS=./config.status} - ac_write_fail=0 -diff -r 8eb8b35e72f3 libssp/configure.ac ---- a/libssp/configure.ac Mon Aug 26 15:14:02 2013 -0400 -+++ b/libssp/configure.ac Mon Aug 26 15:46:55 2013 -0400 -@@ -114,6 +114,26 @@ - AM_CONDITIONAL(LIBSSP_USE_SYMVER_GNU, [test "x$ssp_use_symver" = xgnu]) - AM_CONDITIONAL(LIBSSP_USE_SYMVER_SUN, [test "x$ssp_use_symver" = xsun]) - -+# musl provides libssp in libc -+AC_MSG_CHECKING([whether libssp is provided in libc]) -+AC_ARG_ENABLE(ssp_in_libc, -+AC_HELP_STRING([--enable-ssp-in-libc], -+ [do not build SSP, as it is in libc]), -+ssp_in_libc=$enableval, -+ssp_in_libc=check) -+if test "x$ssp_in_libc" = "xcheck"; then -+ case "$host" in -+ *-musl*) -+ ssp_in_libc=yes -+ ;; -+ -+ *) -+ ssp_in_libc=no -+ ;; -+ esac -+fi -+AM_CONDITIONAL(LIBSSP_IN_LIBC, [test "x$ssp_in_libc" = xyes]) -+ - AC_CHECK_HEADERS(alloca.h malloc.h paths.h syslog.h string.h unistd.h fcntl.h stdio.h limits.h) - - if test x$gcc_no_link = xyes; then -# HG changeset patch # Parent f50bb54f331f73405131a30b4f353cfda1c70304 Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one. @@ -594,49 +342,6 @@ diff -r 2ffe76b215fd libgcc/config/rs6000/linux-unwind.h #define MD_FROB_UPDATE_CONTEXT frob_update_context -diff -r 7cba4201a2ae libgcc/unwind-dw2-fde-dip.c ---- a/libgcc/unwind-dw2-fde-dip.c Sat Jul 27 22:53:05 2013 -0400 -+++ b/libgcc/unwind-dw2-fde-dip.c Sat Jul 27 22:57:08 2013 -0400 -@@ -46,33 +46,13 @@ - #include "unwind-compat.h" - #include "gthr.h" - --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ -- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) -+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) - # define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__BIONIC__) --# define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__FreeBSD__) && __FreeBSD__ >= 7 --# define ElfW __ElfN --# define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__OpenBSD__) --# define ElfW(type) Elf_##type --# define USE_PT_GNU_EH_FRAME --#endif -- --#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(TARGET_DL_ITERATE_PHDR) \ -- && defined(__sun__) && defined(__svr4__) --# define USE_PT_GNU_EH_FRAME -+# ifdef __OpenBSD__ -+# define ElfW(type) Elf_##typ -+# elif defined(__FreeBSD__) && __FreeBSD__ >= 7 -+# define ElfW __ElfN -+# endif - #endif - - #if defined(USE_PT_GNU_EH_FRAME) # HG changeset patch # Parent 3ea10cd626cb7abdfd56d3fe8d2c9ed58a82797b Support for i386-linux-musl and x86_64-linux-musl. |