From 85da5c3024f731e719c4093314da8edcd1056527 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Wed, 22 Apr 2015 14:24:11 +0000 Subject: [PATCH] libstdc++, libgfortran gthr workaround for musl On behalf of szabolcs.nagy@arm.com [libstdc++-v3/] 2015-04-22 Szabolcs Nagy * config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define. * configure.host (os_include_dir): Set to "os/generic" for linux-musl*. [libgfortran/] 2015-04-22 Szabolcs Nagy * acinclude.m4 (GTHREAD_USE_WEAK): Define as 0 for *-*-musl*. * configure: Regenerate. From-SVN: r222329 --- libgfortran/ChangeLog | 5 +++++ libgfortran/acinclude.m4 | 2 +- libgfortran/configure | 2 +- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/config/os/generic/os_defines.h | 5 +++++ libstdc++-v3/configure.host | 3 +++ 6 files changed, 20 insertions(+), 2 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2df9030d058..3a037f21404 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2015-04-22 Szabolcs Nagy + + * acinclude.m4 (GTHREAD_USE_WEAK): Define as 0 for *-*-musl*. + * configure: Regenerate. + 2015-04-21 Jerry DeLisle PR libgfortran/65234 diff --git a/libgfortran/acinclude.m4 b/libgfortran/acinclude.m4 index ba890f98391..30b8b1a6291 100644 --- a/libgfortran/acinclude.m4 +++ b/libgfortran/acinclude.m4 @@ -100,7 +100,7 @@ void foo (void); [Define to 1 if the target supports #pragma weak]) fi case "$host" in - *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* ) + *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* ) AC_DEFINE(GTHREAD_USE_WEAK, 0, [Define to 0 if the target shouldn't use #pragma weak]) ;; diff --git a/libgfortran/configure b/libgfortran/configure index e1592f73249..07542e1387d 100755 --- a/libgfortran/configure +++ b/libgfortran/configure @@ -26447,7 +26447,7 @@ $as_echo "#define SUPPORTS_WEAK 1" >>confdefs.h fi case "$host" in - *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* ) + *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* ) $as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 12f87c35b11..c5c151d63ce 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2015-04-22 Szabolcs Nagy + + * config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define. + * configure.host (os_include_dir): Set to "os/generic" for linux-musl*. + 2015-04-22 Renlin Li * testsuite/lib/dg-options.exp (dg-require-thread-fence): New. diff --git a/libstdc++-v3/config/os/generic/os_defines.h b/libstdc++-v3/config/os/generic/os_defines.h index 45bf52a57c1..103ec0e803f 100644 --- a/libstdc++-v3/config/os/generic/os_defines.h +++ b/libstdc++-v3/config/os/generic/os_defines.h @@ -33,4 +33,9 @@ // System-specific #define, typedefs, corrections, etc, go here. This // file will come before all others. +// Disable the weak reference logic in gthr.h for os/generic because it +// is broken on every platform unless there is implementation specific +// workaround in gthr-posix.h and at link-time for static linking. +#define _GLIBCXX_GTHREAD_USE_WEAK 0 + #endif diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index 82ddc524092..a349ce3dbd9 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -271,6 +271,9 @@ case "${host_os}" in freebsd*) os_include_dir="os/bsd/freebsd" ;; + linux-musl*) + os_include_dir="os/generic" + ;; gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) if [ "$uclibc" = "yes" ]; then os_include_dir="os/uclibc" -- 2.30.2