From: DJ Delorie Date: Thu, 24 Jul 2014 16:41:01 +0000 (-0400) Subject: cygming-crtbegin.c (deregister_frame_fn): Newly public. X-Git-Tag: upstream/12.2.0~61808 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fabf71ba2cdb1f682b370a1c7e74b1e330faa7d3;p=platform%2Fupstream%2Fgcc.git cygming-crtbegin.c (deregister_frame_fn): Newly public. * config/i386/cygming-crtbegin.c (deregister_frame_fn): Newly public. (__gcc_deregister_frame): Move logic to detect deregister function to... (__gcc_register_frame): here, so it's consistent with the register logic. From-SVN: r213009 --- diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index c00e6f9..f74aeb4 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2014-07-24 DJ Delorie + + * config/i386/cygming-crtbegin.c (deregister_frame_fn): Newly public. + (__gcc_deregister_frame): Move logic to detect deregister function to... + (__gcc_register_frame): here, so it's consistent with the register logic. + 2014-07-23 Nathan Sidwell * libgcov-driver.c (set_gcov_list): Remove. diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c index 195b463..b27cd0c 100644 --- a/libgcc/config/i386/cygming-crtbegin.c +++ b/libgcc/config/i386/cygming-crtbegin.c @@ -102,6 +102,7 @@ static struct object obj; /* Handle of libgcc's DLL reference. */ HANDLE hmod_libgcc; +static void * (*deregister_frame_fn) (const void *) == NULL; #endif #if TARGET_USE_JCR_SECTION @@ -133,9 +134,14 @@ __gcc_register_frame (void) hmod_libgcc = LoadLibrary (LIBGCC_SONAME); register_frame_fn = (void (*) (const void *, struct object *)) GetProcAddress (h, "__register_frame_info"); + deregister_frame_fn = (void* (*) (const void *)) + GetProcAddress (h, "__deregister_frame_info"); + } + else + { + register_frame_fn = __register_frame_info; + deregister_frame_fn = __deregister_frame_info; } - else - register_frame_fn = __register_frame_info; if (register_frame_fn) register_frame_fn (__EH_FRAME_BEGIN__, &obj); #endif @@ -161,13 +167,6 @@ void __gcc_deregister_frame (void) { #if DWARF2_UNWIND_INFO - void * (*deregister_frame_fn) (const void *); - HANDLE h = GetModuleHandle (LIBGCC_SONAME); - if (h) - deregister_frame_fn = (void* (*) (const void *)) - GetProcAddress (h, "__deregister_frame_info"); - else - deregister_frame_fn = __deregister_frame_info; if (deregister_frame_fn) deregister_frame_fn (__EH_FRAME_BEGIN__); if (hmod_libgcc)