summaryrefslogtreecommitdiffstats
path: root/gcc48-libgcc-references.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gcc48-libgcc-references.patch')
-rw-r--r--gcc48-libgcc-references.patch45
1 files changed, 0 insertions, 45 deletions
diff --git a/gcc48-libgcc-references.patch b/gcc48-libgcc-references.patch
deleted file mode 100644
index c8918b8..0000000
--- a/gcc48-libgcc-references.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- libgcc/config/i386/cygming-crtbegin.c.orig 2013-07-25 18:39:34.579552100 +0800
-+++ libgcc/config/i386/cygming-crtbegin.c 2013-07-25 18:43:51.778712300 +0800
-@@ -100,6 +100,8 @@
- extern void __gcc_register_frame (void);
- extern void __gcc_deregister_frame (void);
-
-+static HANDLE libgcc_dll;
-+
- void
- __gcc_register_frame (void)
- {
-@@ -112,8 +114,11 @@
- void (*register_frame_fn) (const void *, struct object *);
- HANDLE h = GetModuleHandle (LIBGCC_SONAME);
- if (h)
-- register_frame_fn = (void (*) (const void *, struct object *))
-- GetProcAddress (h, "__register_frame_info");
-+ {
-+ libgcc_dll = LoadLibrary (LIBGCC_SONAME); /* Hold reference */
-+ register_frame_fn = (void (*) (const void *, struct object *))
-+ GetProcAddress (h, "__register_frame_info");
-+ }
- else
- register_frame_fn = __register_frame_info;
- if (register_frame_fn)
-@@ -142,13 +147,16 @@
- {
- #if DWARF2_UNWIND_INFO
- void * (*deregister_frame_fn) (const void *);
-- HANDLE h = GetModuleHandle (LIBGCC_SONAME);
-- if (h)
-+ if (libgcc_dll)
- deregister_frame_fn = (void* (*) (const void *))
-- GetProcAddress (h, "__deregister_frame_info");
-+ GetProcAddress (libgcc_dll, "__deregister_frame_info");
- else
- deregister_frame_fn = __deregister_frame_info;
- if (deregister_frame_fn)
- deregister_frame_fn (__EH_FRAME_BEGIN__);
-+
-+if (libgcc_dll)
-+ FreeLibrary (libgcc_dll);
-+
- #endif
- }