79 lines
2.6 KiB
Diff
79 lines
2.6 KiB
Diff
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
|
|
|