about summary refs log tree commit diff
path: root/pkgs/development/compilers/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch')
-rw-r--r--pkgs/development/compilers/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch285
1 files changed, 0 insertions, 285 deletions
diff --git a/pkgs/development/compilers/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch
deleted file mode 100644
index 0c5d0ee9e460..000000000000
--- a/pkgs/development/compilers/gcc/patches/7/Added-mcf-thread-model-support-from-mcfgthread.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-From d3cb66e4751fcbd581b81a14a973de2d78fc02ad Mon Sep 17 00:00:00 2001
-From: Liu Hao <lh_mouse@126.com>
-Date: Mon, 18 Apr 2016 11:50:55 +0800
-Subject: [PATCH] Added 'mcf' thread model support from mcfgthread.
-
-Signed-off-by: Liu Hao <lh_mouse@126.com>
----
- config/gthr.m4                          |  1 +
- gcc/config.gcc                          |  3 +++
- gcc/config/i386/mingw-mcfgthread.h      |  1 +
- gcc/config/i386/mingw-w64.h             |  2 +-
- gcc/config/i386/mingw32.h               | 11 ++++++++++-
- gcc/configure                           |  2 +-
- gcc/configure.ac                        |  2 +-
- libatomic/configure.tgt                 |  2 +-
- libgcc/config.host                      |  6 ++++++
- libgcc/config/i386/gthr-mcf.h           |  1 +
- libgcc/config/i386/t-mingw-mcfgthread   |  2 ++
- libgcc/configure                        |  1 +
- libstdc++-v3/configure                  |  1 +
- libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++
- libstdc++-v3/libsupc++/guard.cc         | 23 +++++++++++++++++++++++
- 15 files changed, 71 insertions(+), 5 deletions(-)
- create mode 100644 gcc/config/i386/mingw-mcfgthread.h
- create mode 100644 libgcc/config/i386/gthr-mcf.h
- create mode 100644 libgcc/config/i386/t-mingw-mcfgthread
-
-diff --git a/config/gthr.m4 b/config/gthr.m4
-index 7b29f1f3327..82e21fe1709 100644
---- a/config/gthr.m4
-+++ b/config/gthr.m4
-@@ -21,6 +21,7 @@ case $1 in
-     tpf)	thread_header=config/s390/gthr-tpf.h ;;
-     vxworks)	thread_header=config/gthr-vxworks.h ;;
-     win32)	thread_header=config/i386/gthr-win32.h ;;
-+    mcf)	thread_header=config/i386/gthr-mcf.h ;;
- esac
- AC_SUBST(thread_header)
- ])
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 8f91197f34e..59db37cac04 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -1719,6 +1719,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
- 	if test x$enable_threads = xposix ; then
- 		tm_file="${tm_file} i386/mingw-pthread.h"
- 	fi
-+	if test x$enable_threads = xmcf ; then
-+		tm_file="${tm_file} i386/mingw-mcfgthread.h"
-+	fi
- 	tm_file="${tm_file} i386/mingw32.h"
- 	# This makes the logic if mingw's or the w64 feature set has to be used
- 	case ${target} in
-diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h
-new file mode 100644
-index 00000000000..ec381a7798f
---- /dev/null
-+++ b/gcc/config/i386/mingw-mcfgthread.h
-@@ -0,0 +1 @@
-+#define TARGET_USE_MCFGTHREAD 1
-diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h
-index 270ec0dd037..88966f79695 100644
---- a/gcc/config/i386/mingw-w64.h
-+++ b/gcc/config/i386/mingw-w64.h
-@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3.  If not see
- 		 "%{mwindows:-lgdi32 -lcomdlg32} " \
-      "%{fvtable-verify=preinit:-lvtv -lpsapi; \
-         fvtable-verify=std:-lvtv -lpsapi} " \
--		 "-ladvapi32 -lshell32 -luser32 -lkernel32"
-+		 LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32"
- 
- #undef SPEC_32
- #undef SPEC_64
-diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
-index e5f014cb473..989cfbe894e 100644
---- a/gcc/config/i386/mingw32.h
-+++ b/gcc/config/i386/mingw32.h
-@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3.  If not see
- 	 | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \
- 	 | MASK_MS_BITFIELD_LAYOUT)
- 
-+#ifndef TARGET_USE_MCFGTHREAD
-+#define CPP_MCFGTHREAD()  ((void)0)
-+#define LIB_MCFGTHREAD     ""
-+#else
-+#define CPP_MCFGTHREAD()  (builtin_define("__USING_MCFGTHREAD__"))
-+#define LIB_MCFGTHREAD     " -lmcfgthread "
-+#endif
-+
- /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS
-    is for compatibility with native compiler.  */
- #define EXTRA_OS_CPP_BUILTINS()					\
-@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3.  If not see
- 	  builtin_define_std ("WIN64");				\
- 	  builtin_define ("_WIN64");				\
- 	}							\
-+	CPP_MCFGTHREAD();	\
-     }								\
-   while (0)
- 
-@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3.  If not see
- 		 "%{mwindows:-lgdi32 -lcomdlg32} " \
-      "%{fvtable-verify=preinit:-lvtv -lpsapi; \
-         fvtable-verify=std:-lvtv -lpsapi} " \
--                 "-ladvapi32 -lshell32 -luser32 -lkernel32"
-+                 LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32"
- 
- /* Weak symbols do not get resolved if using a Windows dll import lib.
-    Make the unwind registration references strong undefs.  */
-diff --git a/gcc/configure b/gcc/configure
-index ea73b151a4e..317200e5620 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -11681,7 +11681,7 @@ case ${enable_threads} in
-     target_thread_file='single'
-     ;;
-   aix | dce | lynx | mipssde | posix | rtems | \
--  single | tpf | vxworks | win32)
-+  single | tpf | vxworks | win32 | mcf)
-     target_thread_file=${enable_threads}
-     ;;
-   *)
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 9d4c792a33f..d51899a5676 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1612,7 +1612,7 @@ case ${enable_threads} in
-     target_thread_file='single'
-     ;;
-   aix | dce | lynx | mipssde | posix | rtems | \
--  single | tpf | vxworks | win32)
-+  single | tpf | vxworks | win32 | mcf)
-     target_thread_file=${enable_threads}
-     ;;
-   *)
-diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
-index b8af3ab2546..73248438a8c 100644
---- a/libatomic/configure.tgt
-+++ b/libatomic/configure.tgt
-@@ -125,7 +125,7 @@ case "${target}" in
-   *-*-mingw*)
- 	# OS support for atomic primitives.
-         case ${target_thread_file} in
--          win32)
-+          win32 | mcf)
-             config_path="${config_path} mingw"
-             ;;
-           posix)
-diff --git a/libgcc/config.host b/libgcc/config.host
-index b279a6458f9..20d22f585da 100644
---- a/libgcc/config.host
-+++ b/libgcc/config.host
-@@ -710,6 +710,9 @@ i[34567]86-*-mingw*)
- 	  posix)
- 	    tmake_file="i386/t-mingw-pthread $tmake_file"
- 	    ;;
-+	  mcf)
-+	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
-+	    ;;
- 	esac
- 	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
- 	if test x$ac_cv_sjlj_exceptions = xyes; then
-@@ -734,6 +737,9 @@ x86_64-*-mingw*)
- 	  posix)
- 	    tmake_file="i386/t-mingw-pthread $tmake_file"
- 	    ;;
-+	  mcf)
-+	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
-+	    ;;
- 	esac
- 	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
- 	if test x$ac_cv_sjlj_exceptions = xyes; then
-diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h
-new file mode 100644
-index 00000000000..5ea2908361f
---- /dev/null
-+++ b/libgcc/config/i386/gthr-mcf.h
-@@ -0,0 +1 @@
-+#include <mcfgthread/gthread.h>
-diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread
-new file mode 100644
-index 00000000000..4b9b10e32d6
---- /dev/null
-+++ b/libgcc/config/i386/t-mingw-mcfgthread
-@@ -0,0 +1,2 @@
-+SHLIB_PTHREAD_CFLAG =
-+SHLIB_PTHREAD_LDFLAG = -lmcfgthread
-diff --git a/libgcc/configure b/libgcc/configure
-index 45c459788c3..8fc569ef16e 100644
---- a/libgcc/configure
-+++ b/libgcc/configure
-@@ -5086,6 +5086,7 @@ case $target_thread_file in
-     tpf)	thread_header=config/s390/gthr-tpf.h ;;
-     vxworks)	thread_header=config/gthr-vxworks.h ;;
-     win32)	thread_header=config/i386/gthr-win32.h ;;
-+    mcf)	thread_header=config/i386/gthr-mcf.h ;;
- esac
- 
- 
-diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index 2406cb9d946..50e7e4ced89 100755
---- a/libstdc++-v3/configure
-+++ b/libstdc++-v3/configure
-@@ -15182,6 +15182,7 @@ case $target_thread_file in
-     tpf)	thread_header=config/s390/gthr-tpf.h ;;
-     vxworks)	thread_header=config/gthr-vxworks.h ;;
-     win32)	thread_header=config/i386/gthr-win32.h ;;
-+    mcf)	thread_header=config/i386/gthr-mcf.h ;;
- esac
- 
- 
-diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc
-index 923a0707556..a55d85aad2d 100644
---- a/libstdc++-v3/libsupc++/atexit_thread.cc
-+++ b/libstdc++-v3/libsupc++/atexit_thread.cc
-@@ -25,6 +25,22 @@
- #include <cstdlib>
- #include <new>
- #include "bits/gthr.h"
-+
-+#ifdef __USING_MCFGTHREAD__
-+
-+#include <mcfgthread/gthread.h>
-+
-+extern "C" int
-+__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *),
-+				 void *obj, void *dso_handle)
-+  _GLIBCXX_NOTHROW
-+{
-+  return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1;
-+  (void)dso_handle;
-+}
-+
-+#else // __USING_MCFGTHREAD__
-+
- #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32
- #define WIN32_LEAN_AND_MEAN
- #include <windows.h>
-@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha
- }
- 
- #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */
-+
-+#endif // __USING_MCFGTHREAD__
-diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc
-index 19953bc52f0..72fd5f26d5b 100644
---- a/libstdc++-v3/libsupc++/guard.cc
-+++ b/libstdc++-v3/libsupc++/guard.cc
-@@ -28,6 +28,27 @@
- #include <cxxabi.h>
- #include <exception>
- #include <new>
-+
-+#ifdef __USING_MCFGTHREAD__
-+
-+#include <mcfgthread/gthread.h>
-+
-+namespace __cxxabiv1 {
-+
-+extern "C" int __cxa_guard_acquire(__guard *g){
-+	return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial;
-+}
-+extern "C" void __cxa_guard_abort(__guard *g) throw() {
-+	::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g);
-+}
-+extern "C" void __cxa_guard_release(__guard *g) throw() {
-+	::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g);
-+}
-+
-+}
-+
-+#else // __USING_MCFGTHREAD__
-+
- #include <ext/atomicity.h>
- #include <ext/concurrence.h>
- #include <bits/atomic_lockfree_defines.h>
-@@ -425,3 +446,5 @@ namespace __cxxabiv1
- #endif
-   }
- }
-+
-+#endif
--- 
-2.12.1
-