diff options
Diffstat (limited to 'gcc48-libgcc-references.patch')
-rw-r--r-- | gcc48-libgcc-references.patch | 45 |
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 - } |