mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 22:03:57 +08:00
libgcc: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is true
2019-12-11 Jozef Lawrynowicz <jozef.l@mittosystems.com> * crtstuff.c: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is true. From-SVN: r279243
This commit is contained in:
parent
0230c89710
commit
34a53788fe
@ -1,3 +1,8 @@
|
||||
2019-12-11 Jozef Lawrynowicz <jozef.l@mittosystems.com>
|
||||
|
||||
* crtstuff.c: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is
|
||||
true.
|
||||
|
||||
2019-12-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
|
||||
|
||||
* crtstuff.c (__do_global_dtors_aux): Check if USE_EH_FRAME_REGISTRY is
|
||||
|
@ -325,11 +325,14 @@ register_tm_clones (void)
|
||||
|
||||
#ifdef OBJECT_FORMAT_ELF
|
||||
|
||||
#if DEFAULT_USE_CXA_ATEXIT
|
||||
/* 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. */
|
||||
dynamic linker takes care of this.
|
||||
If __cxa_atexit is not being used, __dso_handle will not be used and
|
||||
doesn't need to be defined. */
|
||||
|
||||
#ifdef TARGET_LIBGCC_SDATA_SECTION
|
||||
extern void *__dso_handle __attribute__ ((__section__ (TARGET_LIBGCC_SDATA_SECTION)));
|
||||
@ -342,6 +345,7 @@ void *__dso_handle = &__dso_handle;
|
||||
#else
|
||||
void *__dso_handle = 0;
|
||||
#endif
|
||||
#endif /* DEFAULT_USE_CXA_ATEXIT */
|
||||
|
||||
/* The __cxa_finalize function may not be available so we use only a
|
||||
weak declaration. */
|
||||
|
Loading…
Reference in New Issue
Block a user