Commit c774c780 authored by Timo Teräs's avatar Timo Teräs

main/gcc: unbreak ada on uclibc, crossbuild fixes, and musl updates

parent 89da1e50
......@@ -12,7 +12,7 @@ _cross=""
&& _cross="-$CTARGET"
pkgname="$pkgname$_cross"
pkgrel=3
pkgrel=4
pkgdesc="The GNU Compiler Collection"
url="http://gcc.gnu.org"
arch="all"
......@@ -60,9 +60,9 @@ if [ "$CHOST" != "$CTARGET" ] && [ -n "$CHOST" -a -n "$CTARGET" ]; then
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=" "
export CFLAGS_FOR_TARGET=" "
export CXXFLAGS_FOR_TARGET=" "
export LDFLAGS_FOR_TARGET=" "
STRIP_FOR_TARGET="$CTARGET-strip"
elif [ "$CBUILD" != "$CHOST" ] && [ -n "$CBUILD" -a -n "$CHOST" ]; then
......@@ -165,6 +165,7 @@ source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2
gcc-4.6-pr32219.patch
gcc-4.8-dynamic-linker.patch
gcc-4.8-musl.patch
gcc-4.8-musl-libssp.patch
boehm-gc-uclibc.patch
boehm-gc-musl.patch
gcc-pure64.patch
......@@ -262,12 +263,13 @@ build() {
case "$CTARGET" in
armv7-*-*-*eabihf) _arch_configure="--with-arch=armv7-a --with-tune=cortex-a15 --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux";;
armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6zk --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=hard --with-abi=aapcs-linux";;
i486-*-*-*) _arch_configure="--with-arch=i486 --enable-cld";;
i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";;
esac
case "$CTARGET_LIBC" in
musl)
# musl does not support mudflap
# musl does not support mudflap, or libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
_libc_configure="--disable-libssp --disable-libmudflap --disable-libsanitizer"
_symvers="--disable-symvers"
export gcc_cv_libc_provides_ssp=yes
......@@ -280,10 +282,8 @@ build() {
;;
esac
if [ "$CHOST" != "$CTARGET" ]; then
_cross_configure="--disable-bootstrap --enable-clocale=gnu"
_cross_configure="$_cross_configure --with-sysroot=$CBUILDROOT"
fi
[ "$CBUILD" != "$CHOST" ] && _cross_configure="--disable-bootstrap"
[ "$CHOST" != "$CTARGET" ] && _cross_configure="--disable-bootstrap --with-sysroot=$CBUILDROOT"
case "$BOOTSTRAP" in
noheaders)
......@@ -419,7 +419,7 @@ libcxx() {
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libstdc++.so.* "$subpkgdir"/usr/lib/ || \
cp "$pkgdir"/usr/$CTARGET/lib/libstdc++.so.* "$subpkgdir"/usr/lib/ || \
cp -a "$pkgdir"/usr/$CTARGET/lib/libstdc++.so.* "$subpkgdir"/usr/lib/ || \
return 1
}
......@@ -468,7 +468,7 @@ libgcc() {
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/ || \
cp -a "$pkgdir"/usr/$CTARGET/lib/libgcc_s.so.* "$subpkgdir"/usr/lib/ || \
return 1
}
......@@ -652,7 +652,8 @@ ab83248e10b2bf4b3d9240de0fefb52b pt_gnu_eh_frame.patch
6cc2385c5bbd6d0da6eaedd53c8bf547 uclibc-getipinfo.patch
32e8e4c0e23ed8f5de95a591cb30f1da gcc-4.6-pr32219.patch
79d00ee1284fac5192456f7f7d3908aa gcc-4.8-dynamic-linker.patch
b389ecd3b46ab2142c7b0cf113f31097 gcc-4.8-musl.patch
c45de4791c63d42731dc4c36a84b6717 gcc-4.8-musl.patch
60de2c9f78f00b8b0ba5d24fb44ea592 gcc-4.8-musl-libssp.patch
2c6cb49bb9bfd8b6e690222e66ccc901 boehm-gc-uclibc.patch
ea2749b1337a5d850a8f463071cc4747 boehm-gc-musl.patch
2e2b787bb988d9007c9f7ce42178dfe6 gcc-pure64.patch
......@@ -662,7 +663,7 @@ fb28fd941c110627b7b9ca523d66b8d6 pr57748.patch
4aea37d334ab00bb6bba37cd8c481367 fix-cxxflags-passing.patch
87684048ecaaf0e046983bc2782292dd fix-cxxflags-for-target.patch
750e903d5a53ba32618c2142cdd914e1 ada-no-pie.patch
2e946abc09924d91988a9b7fd5824ef3 ada-fixes.patch
2b4235111d2e66f2c690eb340cb4178b ada-fixes.patch
d77c99bf7c03d082a540aaba1193be40 ada-crossbuild.patch
20e2731c02ce50739ebdead2795f9c41 ada-shared.patch
4e47bdae120129462244da0d89a573b3 ada-musl.patch"
......@@ -685,7 +686,8 @@ da6bbb5dc654d5e1df8ecae5c9ebb56265426c405931f14f5878248b8c79f78d 51_all_libiber
53184f842477569973c232dac7c85e71b0018cbe5c4962f95dd9e0273f42083e uclibc-getipinfo.patch
89207a8b62137a857ee2c43499d6b5247d37b530d1338844dbb330a6846b2ad2 gcc-4.6-pr32219.patch
f3863b997acf8fdf5ad1d3626b41a8a0670b896505e9b7afb517916c7599fb1c gcc-4.8-dynamic-linker.patch
a92e782e38a691c8a2042ac14d7501fd6df54e917c2daa65b6e7a98adcda0323 gcc-4.8-musl.patch
d3e3c305d5da95703f53d615f901912ada9395e3ccf3670435d28d5409dfa956 gcc-4.8-musl.patch
ce0168ce009d77ce5831cb71739675cad6d68283b6e57fa8f2e559d65502022d gcc-4.8-musl-libssp.patch
02751ccf223dcfc898c0ce2214cd0859d275e90b742f1a66e38db5c50f94b38c boehm-gc-uclibc.patch
6adcddbc9d52b4e39878155bc7ff0114c322e0f05c0c82dff8c06c7278313f73 boehm-gc-musl.patch
f5473c6aea96d5137defd68898ba31042944a3f3ed26c05b964a40bd876c6f47 gcc-pure64.patch
......@@ -695,7 +697,7 @@ bd7a6f514fcc457f29e5fda157203f3bcd013aeba5d53b3459196eef3ce752ab gcc-4.8-build-
a395ba4cf047c48cac56985726fddf0948f4425c9f1a0c9ddba1812b2b3d8300 fix-cxxflags-passing.patch
a5678380e887dbf600c59273d382e81c10f89d28e422238a617d0a43ad5c5a69 fix-cxxflags-for-target.patch
de3c8606015ebda0dc574f904aa4d23c44c5e261b34dce2ef4d08eed21cb99b9 ada-no-pie.patch
556fcc3937d067e177acee7bbeeff80b0c5d445280c82e5af590db0f68143ebb ada-fixes.patch
ca0db7f59e7af0c621751eee9e3775d4c00c4b663f82f9e04c53a2efb16edca1 ada-fixes.patch
324524490c60d84ef040f79589e0f93fbaeb253dbe031484afaf963b881047e9 ada-crossbuild.patch
d6c7fc1820a4fa285297c299c255fe2f19ce1695486f20edd098252a97545e6a ada-shared.patch
f20c34f3e0a1bf717f5e22fd66b57c8b69f0411d063203c017ed8209f349e1d4 ada-musl.patch"
......@@ -718,7 +720,8 @@ d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2
e3edf75df1f27af8771bd263e1bd607f6207c4eb5b2a5e11032577deba43ea201825e3b5008a720105f24e49d2821dd77a61c7ceba7ed91b3621c0dbd9292fc6 uclibc-getipinfo.patch
9fc5e32f2573ae67b6cf22119d636d10a47c42718635bceff7d457a93a3f664ae1ed10e154f70964ba2d26b0de04f879a8c05de6411112760d40433373dd0a80 gcc-4.6-pr32219.patch
db84b6582950378116723116be4f277881f7bdd05add216c58c2b86c0fb3a70abeb7798507a74a64b9b949d5b311167bd4df84a048d2d2d32f5836ea1d34c42e gcc-4.8-dynamic-linker.patch
9923851779c860fb204ec9f2833a3cbd364d0675486b8de60f0191778955ff01f35d3754009021634c3e0ea8e32470cc39f4b18b6b6d4d7c687846a8b635672d gcc-4.8-musl.patch
42b05a87f8785d3dc4ba6c5cd8d1e7b5fb119aef9cb59523ac695b8c7c910edc7d428ea4f2f1080e1f53f990a8d6070d3f0025cc02b4418f230493b7672c94d6 gcc-4.8-musl.patch
701c79ea7b90e622facb16fc71902aec25c443e376d675fc3f07cd55eff7a6b95ca365b2c60fff1dad3c3dc02b96c4c2ebbb45e4d2895496137e060443ae3e79 gcc-4.8-musl-libssp.patch
e1d6a450dfb40b134ad7f759c4c10174d2490b0093fe47cb33479245f26a3a8c54ebcf6255943c0ccfcb5095600d1c05e530baeed35609c8ffe75caac8e57c49 boehm-gc-uclibc.patch
7db904f83546edb4f7e54d3eaa0a8ab3235bca69e03a35000f083d26626bff92713f73150935c89f51e47c952bf29c36ec7d2fc8fedcde38048975e3e590faf9 boehm-gc-musl.patch
4a5aeff0399782c752e6e3f2f48d984b2056dfb5d229b23a24eee1562d241339989b2203f139821cfc03c9b25c9bd7da6ccbbdc7a09d242e4de7f0d606c6f63c gcc-pure64.patch
......@@ -728,7 +731,7 @@ abe9aaf9aa956058d0386a4396a511d176a46bb3906b90e952383646cdc158cbeb0a5dc616a1ccb1
35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch
c731f4aaaa65c8950e1b2bd9331410f92d378fd8c7e718532dccaa27ee11984d51d74216c3611e89a802325b81d7f184116839dce2dab50cae9b643c20a82fe7 fix-cxxflags-for-target.patch
4938a38d6ffebebcd8b07a60e7d300935ef57056e5820145c6668dd5141e272d73a67a1bfe84dafda77212058eee768a03aba4356e52867b40a9ba9216a96714 ada-no-pie.patch
0541b4e31164d3fed653e811c1ededcf0dc578220f11f4ca3d8a293b2cf1ebc62b4259afd103a5d24092cc738a5760efdd5310a6383d0d8152309562d04b0525 ada-fixes.patch
b37195a126476775e2ef16e0adc9173664c514339fb319f628debd8a4133fa53e022278387c68fc260cf813e58602617e9e629ea8177133bfdf5972398fe1c55 ada-fixes.patch
4d411563f6a3ea06bc3a1f4fa77d10250cc275e2496df6039d93f9b2229bc1f5334e484494dbd08881cf046f98aaca8bdddaa6b4a8f947b936d0bdc9e91f2f2b ada-crossbuild.patch
3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch
7f6dc922a2c80b1c8c5ed0b6d6e4c1e672984f54bb217f28517929af129892e42c45f7aea4b9c50d8bbc008384b7ae19e1475c79f08b78775709720fe317c8f3 ada-musl.patch"
......@@ -14,18 +14,15 @@
#include <sys/ioctl.h>
#include <termios.h>
#include <fcntl.h>
@@ -1032,10 +1025,8 @@
*/
@@ -1078,7 +1078,7 @@
char *slave_name = NULL;
/* 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)
#ifdef USE_GETPT
- master_fd = getpt ();
+ master_fd = posix_openpt (O_RDWR);
#elif defined (USE_OPENPTY)
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
@@ -1179,7 +1170,7 @@
int status;
......
--- gcc-4.8.1/gcc/gcc.c.orig 2013-09-24 06:27:32.133894539 +0000
+++ gcc-4.8.1/gcc/gcc.c 2013-09-24 06:29:35.790562854 +0000
@@ -656,7 +656,9 @@
#endif
#ifndef LINK_SSP_SPEC
-#ifdef TARGET_LIBC_PROVIDES_SSP
+#if DEFAULT_LIBC == LIBC_MUSL
+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared}"
+#elif defined(TARGET_LIBC_PROVIDES_SSP)
#define LINK_SSP_SPEC "%{fstack-protector:}"
#else
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared -lssp}"
......@@ -13,39 +13,39 @@
#define LINUX_TARGET_LINK_SPEC "%{h*} \
%{static:-Bstatic} \
# HG changeset patch
# Parent e87035576969de2cc4d03decf5f81d682addf305
# Parent c3eb69047e35491fda9cd9ab1ee2ace1299c793c
Support for arm-linux-musl.
diff -r e87035576969 gcc/config/arm/linux-eabi.h
--- a/gcc/config/arm/linux-eabi.h Sun Sep 08 16:10:51 2013 -0400
+++ b/gcc/config/arm/linux-eabi.h Sun Sep 08 16:12:57 2013 -0400
diff -r c3eb69047e35 gcc/config/arm/linux-eabi.h
--- a/gcc/config/arm/linux-eabi.h Thu Sep 19 07:11:38 2013 -0400
+++ b/gcc/config/arm/linux-eabi.h Thu Sep 19 08:56:47 2013 -0400
@@ -77,6 +77,23 @@
%{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
%{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
+/* For ARM musl currently supports two dynamic linkers:
+/* For ARM musl currently supports four dynamic linkers:
+ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI
+ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI.
+ musl does not support the legacy OABI (i.e. broken) mode.
+ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI
+ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB
+ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB
+ musl does not support the legacy OABI mode.
+ All the dynamic linkers live in /lib.
+ We default to soft-float, but this can be overridden by changing both
+ MUSL_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
+ We default to soft-float, EL. */
+#undef MUSL_DYNAMIC_LINKER
+#define MUSL_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-musl-arm.so.1"
+#define MUSL_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-musl-armhf.so.1"
+#define MUSL_DYNAMIC_LINKER_DEFAULT MUSL_DYNAMIC_LINKER_SOFT_FLOAT
+
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}"
+#else
+#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
+#endif
+#define MUSL_DYNAMIC_LINKER \
+ "%{mfloat-abi=hard:" MUSL_DYNAMIC_LINKER_HARD_FLOAT "} \
+ %{mfloat-abi=soft*:" MUSL_DYNAMIC_LINKER_SOFT_FLOAT "} \
+ %{!mfloat-abi=*:" MUSL_DYNAMIC_LINKER_DEFAULT "}"
+ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.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. */
#undef LINK_SPEC
diff -r e87035576969 libitm/config/arm/hwcap.cc
--- a/libitm/config/arm/hwcap.cc Sun Sep 08 16:10:51 2013 -0400
+++ b/libitm/config/arm/hwcap.cc Sun Sep 08 16:12:57 2013 -0400
diff -r c3eb69047e35 libitm/config/arm/hwcap.cc
--- a/libitm/config/arm/hwcap.cc Thu Sep 19 07:11:38 2013 -0400
+++ b/libitm/config/arm/hwcap.cc Thu Sep 19 08:56:47 2013 -0400
@@ -40,7 +40,11 @@
#ifdef __linux__
......@@ -58,9 +58,24 @@ diff -r e87035576969 libitm/config/arm/hwcap.cc
#include <elf.h>
static void __attribute__((constructor))
--- a/gcc/configure
+++ b/gcc/configure
@@ -26970,6 +26970,9 @@
diff -r ef9a64dbe461 gcc/configure
--- a/gcc/configure Thu Sep 19 09:37:33 2013 -0400
+++ b/gcc/configure Thu Sep 19 09:40:09 2013 -0400
@@ -26764,11 +26764,12 @@
gcc_cv_libc_provides_ssp=yes
fi
;;
- *-*-gnu*)
+ *-*-gnu* | *-*-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
# realistically usable GNU/Hurd configurations.
+ # All supported versions of musl provide it as well
gcc_cv_libc_provides_ssp=yes;;
*-*-darwin* | *-*-freebsd*)
ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail"
@@ -26851,6 +26852,9 @@
gcc_cv_target_dl_iterate_phdr=no
fi
;;
......@@ -70,7 +85,33 @@ diff -r e87035576969 libitm/config/arm/hwcap.cc
esac
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
diff -r ef9a64dbe461 gcc/configure.ac
--- a/gcc/configure.ac Thu Sep 19 09:37:33 2013 -0400
+++ b/gcc/configure.ac Thu Sep 19 09:40:09 2013 -0400
@@ -4747,11 +4747,12 @@
gcc_cv_libc_provides_ssp=yes
fi]
;;
- *-*-gnu*)
+ *-*-gnu* | *-*-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
# realistically usable GNU/Hurd configurations.
+ # All supported versions of musl provide it as well
gcc_cv_libc_provides_ssp=yes;;
*-*-darwin* | *-*-freebsd*)
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
@@ -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
# HG changeset patch
# Parent 572f7b4d1c50cefde3aa2c43d06040fc308ad989
Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker.
......@@ -318,228 +359,6 @@ diff -r 94e435662aff -r e27957848dc8 fixincludes/mkfixinc.sh
# 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.
......@@ -571,18 +390,23 @@ diff -r f50bb54f331f libstdc++-v3/configure.host
os_include_dir="os/hpux"
;;
# HG changeset patch
# Parent 62831d7bf931658019ba16092c48375177d014b1
# Parent 4618ad6f036f1e944a5262ae5875dcdf62c41f8b
Support for mips-linux-musl.
diff -r 62831d7bf931 gcc/config/mips/linux.h
--- a/gcc/config/mips/linux.h Fri Mar 29 16:41:23 2013 -0400
+++ b/gcc/config/mips/linux.h Fri Mar 29 16:41:25 2013 -0400
@@ -18,3 +18,5 @@
diff -r 4618ad6f036f gcc/config/mips/linux.h
--- a/gcc/config/mips/linux.h Thu Sep 19 08:56:47 2013 -0400
+++ b/gcc/config/mips/linux.h Thu Sep 19 09:08:11 2013 -0400
@@ -18,3 +18,10 @@
<http://www.gnu.org/licenses/>. */
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips.so.1"
+#if TARGET_ENDIAN_DEFAULT == 0 /* LE */
+#define MUSL_DYNAMIC_LINKER_E "%{EB:;:el}"
+#else
+#define MUSL_DYNAMIC_LINKER_E "%{EL:el}"
+#endif
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips" MUSL_DYNAMIC_LINKER_E ".so.1"
# HG changeset patch
# Parent 2ffe76b215fdb082cbbc262536077627757fa9bf
Support for powerpc-linux-musl.
......@@ -789,4 +613,3 @@ diff -r 3ea10cd626cb libitm/config/linux/x86/tls.h
+#endif
#endif // LIBITM_X86_TLS_H
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment