| From 553d8e3b9073ff3e0a9d2fac9b1823fb17ad247c Mon Sep 17 00:00:00 2001 |
| From: Khem Raj <raj.khem@gmail.com> |
| Date: Tue, 2 Feb 2016 21:00:18 -0800 |
| Subject: [PATCH 49/51] Disable the weak reference logic in gthr.h for |
| os/generic |
| |
| It does not work unless work arounds are there in gthr-posix.h |
| |
| origin of patch |
| http://port70.net/~nsz/musl/gcc-5.3.0/0004-gthr.patch |
| |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| Upstream-Status: Pending |
| |
| libgfortran/acinclude.m4 | 2 +- |
| libgfortran/configure | 2 +- |
| libstdc++-v3/config/os/generic/os_defines.h | 5 +++++ |
| libstdc++-v3/configure.host | 3 +++ |
| 4 files changed, 10 insertions(+), 2 deletions(-) |
| |
| diff --git a/libgfortran/acinclude.m4 b/libgfortran/acinclude.m4 |
| index ba890f9..30b8b1a6 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 5d47e65..cdf9695 100755 |
| --- a/libgfortran/configure |
| +++ b/libgfortran/configure |
| @@ -26456,7 +26456,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/config/os/generic/os_defines.h b/libstdc++-v3/config/os/generic/os_defines.h |
| index 45bf52a..103ec0e 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 1756444..2a87bb8 100644 |
| --- a/libstdc++-v3/configure.host |
| +++ b/libstdc++-v3/configure.host |
| @@ -273,6 +273,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) |
| # check for musl by target |
| case "${host_os}" in |
| -- |
| 2.7.0 |
| |