summaryrefslogtreecommitdiffstats
path: root/main/gcc/gcc-4.8-musl.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2013-09-24 15:37:34 +0000
committerTimo Teräs <timo.teras@iki.fi>2013-09-24 16:58:42 +0000
commitc774c78064e6cd0bbe11c9f5261585842e7499fa (patch)
treec884ea4702b24a5cdd20d4d3118227e87405e506 /main/gcc/gcc-4.8-musl.patch
parent89da1e507c14d43444ff384d50c9a9d43ce8847d (diff)
downloadaports-c774c78064e6cd0bbe11c9f5261585842e7499fa.tar.bz2
aports-c774c78064e6cd0bbe11c9f5261585842e7499fa.tar.xz
main/gcc: unbreak ada on uclibc, crossbuild fixes, and musl updates
Diffstat (limited to 'main/gcc/gcc-4.8-musl.patch')
-rw-r--r--main/gcc/gcc-4.8-musl.patch327
1 files changed, 75 insertions, 252 deletions
diff --git a/main/gcc/gcc-4.8-musl.patch b/main/gcc/gcc-4.8-musl.patch
index a394630b0..26f89eb68 100644
--- a/main/gcc/gcc-4.8-musl.patch
+++ b/main/gcc/gcc-4.8-musl.patch
@@ -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
-