diff options
author | Yaakov Selkowitz <yselkowi@redhat.com> | 2015-06-19 00:42:10 -0500 |
---|---|---|
committer | Yaakov Selkowitz <yselkowi@redhat.com> | 2015-06-19 00:42:10 -0500 |
commit | 6f91efa3e6e85685bbf7a4e07e7cf2324d2388cb (patch) | |
tree | d5cf1b3104dfc411c45a8c1a4a4251a0fbd6818b /gcc48-__cxa_atexit.patch | |
parent | 40a0a60a27a65867bc1a97def6fe946ac10b091c (diff) | |
download | cygwin-gcc-6f91efa3e6e85685bbf7a4e07e7cf2324d2388cb.tar.gz cygwin-gcc-6f91efa3e6e85685bbf7a4e07e7cf2324d2388cb.tar.xz cygwin-gcc-6f91efa3e6e85685bbf7a4e07e7cf2324d2388cb.zip |
cygwin-gcc 4.9.2-1
Diffstat (limited to 'gcc48-__cxa_atexit.patch')
-rw-r--r-- | gcc48-__cxa_atexit.patch | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/gcc48-__cxa_atexit.patch b/gcc48-__cxa_atexit.patch deleted file mode 100644 index bcff00a..0000000 --- a/gcc48-__cxa_atexit.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- origsrc/gcc-4.8.3/gcc/config/i386/cygwin.h 2014-08-01 15:20:08.936969300 -0500 -+++ src/gcc-4.8.3/gcc/config/i386/cygwin.h 2014-08-04 17:17:31.265803800 -0500 -@@ -40,7 +40,7 @@ along with GCC; see the file COPYING3. - #define STARTFILE_SPEC "\ - %{!shared: %{!mdll: crt0%O%s \ - %{pg:gcrt0%O%s}}}\ -- crtbegin.o%s" -+ %{shared:crtbeginS.o%s;:crtbegin.o%s}" - - #undef ENDFILE_SPEC - #define ENDFILE_SPEC \ ---- origsrc/gcc-4.8.3/gcc/config.gcc 2014-08-01 15:20:08.402401400 -0500 -+++ src/gcc-4.8.3/gcc/config.gcc 2014-08-06 17:58:38.240552900 -0500 -@@ -1452,6 +1452,7 @@ i[34567]86-*-cygwin*) - thread_file='posix' - fi - use_gcc_stdint=wrap -+ default_use_cxa_atexit=yes - ;; - x86_64-*-cygwin*) - need_64bit_isa=yes -@@ -1467,6 +1468,7 @@ x86_64-*-cygwin*) - thread_file='posix' - fi - use_gcc_stdint=wrap -+ default_use_cxa_atexit=yes - ;; - i[34567]86-*-mingw* | x86_64-*-mingw*) - tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h" ---- origsrc/gcc-4.8.3/libgcc/config/i386/cygming-crtbegin.c 2014-08-01 15:20:08.998477100 -0500 -+++ src/gcc-4.8.3/libgcc/config/i386/cygming-crtbegin.c 2014-08-06 23:54:59.133581500 -0500 -@@ -81,6 +81,24 @@ static void *__JCR_LIST__[] - = { }; - #endif - -+#ifdef __CYGWIN__ -+/* Declare the __dso_handle variable. It should have a unique value -+ in every shared-object; in a main program its value is zero. The -+ object should in any case be protected. This means the instance -+ in one DSO or the main program is not used in another object. The -+ dynamic linker takes care of this. */ -+ -+#ifdef CRTSTUFFS_O -+extern void *__ImageBase; -+void *__dso_handle = &__ImageBase; -+#else -+void *__dso_handle = 0; -+#endif -+ -+extern int __cxa_atexit (void (*)(void *), void *, void *); -+#endif /* __CYGWIN__ */ -+ -+ - /* Pull in references from libgcc.a(unwind-dw2-fde.o) in the - startfile. These are referenced by a ctor and dtor in crtend.o. */ - extern void __gcc_register_frame (void); -@@ -131,6 +148,17 @@ __gcc_register_frame (void) - register_class_fn (__JCR_LIST__); - } - #endif -+ -+#if DEFAULT_USE_CXA_ATEXIT -+ /* If we use the __cxa_atexit method to register C++ dtors -+ at object construction, also use atexit to register eh frame -+ info cleanup. */ -+#ifdef __CYGWIN__ -+ __cxa_atexit(__gcc_deregister_frame, NULL, (void *)&__dso_handle); -+#else -+ atexit(__gcc_deregister_frame); -+#endif /* __CYGWIN__ */ -+#endif /* DEFAULT_USE_CXA_ATEXIT */ - } - - void ---- origsrc/gcc-4.8.3/libgcc/config/i386/cygming-crtend.c 2013-02-04 13:06:20.000000000 -0600 -+++ src/gcc-4.8.3/libgcc/config/i386/cygming-crtend.c 2014-08-06 01:27:35.568214600 -0500 -@@ -70,12 +70,6 @@ static void - register_frame_ctor (void) - { - __gcc_register_frame (); --#if DEFAULT_USE_CXA_ATEXIT -- /* If we use the __cxa_atexit method to register C++ dtors -- at object construction, also use atexit to register eh frame -- info cleanup. */ -- atexit (__gcc_deregister_frame); --#endif - } - - #if !DEFAULT_USE_CXA_ATEXIT ---- origsrc/gcc-4.8.3/libgcc/config/i386/t-cygming 2011-11-02 10:23:48.000000000 -0500 -+++ src/gcc-4.8.3/libgcc/config/i386/t-cygming 2014-08-04 17:15:30.836011200 -0500 -@@ -8,6 +8,9 @@ CUSTOM_CRTSTUFF = yes - crtbegin.o: $(srcdir)/config/i386/cygming-crtbegin.c - $(crt_compile) -fno-omit-frame-pointer -c $< - -+crtbeginS.o: $(srcdir)/config/i386/cygming-crtbegin.c -+ $(crt_compile) -fno-omit-frame-pointer -c $< -DCRTSTUFFS_O -+ - # We intentionally use a implementation-reserved init priority of 0, - # so allow the warning. - crtend.o: $(srcdir)/config/i386/cygming-crtend.c ---- origsrc/gcc-4.8.3/libgcc/config.host 2014-08-01 15:20:05.717560400 -0500 -+++ src/gcc-4.8.3/libgcc/config.host 2014-08-04 17:19:11.955589800 -0500 -@@ -559,7 +559,7 @@ i[34567]86-*-solaris2* | x86_64-*-solari - i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) - ;; - i[34567]86-*-cygwin*) -- extra_parts="crtbegin.o crtend.o crtfastmath.o" -+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o" - # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h - if test x$enable_sjlj_exceptions = xyes; then - tmake_eh_file="i386/t-sjlj-eh" |