aboutsummaryrefslogtreecommitdiff
path: root/gcc/libgcc2.c
diff options
context:
space:
mode:
authorPhilippe De Muyter <phdm@macqel.be>1998-03-19 21:24:35 +0100
committerJeff Law <law@gcc.gnu.org>1998-03-19 13:24:35 -0700
commit09b4ce121be408d2034b49ad42fdc16e08b1a9af (patch)
tree8d54791c2da0e893598b5a01521039f9a5ee65eb /gcc/libgcc2.c
parentba3ad5e002ee9c9523e4b61eb47b1b510d8841ef (diff)
downloadgcc-09b4ce121be408d2034b49ad42fdc16e08b1a9af.zip
gcc-09b4ce121be408d2034b49ad42fdc16e08b1a9af.tar.gz
gcc-09b4ce121be408d2034b49ad42fdc16e08b1a9af.tar.bz2
* libgcc2.c (exit): Do not call __bb_exit_func if HAVE_ATEXIT.
From-SVN: r18717
Diffstat (limited to 'gcc/libgcc2.c')
-rw-r--r--gcc/libgcc2.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 6ccc118..663609b 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -2984,10 +2984,16 @@ exit (int status)
#else /* No NEED_ATEXIT */
__do_global_dtors ();
#endif /* No NEED_ATEXIT */
-#endif
+#endif /* !defined (INIT_SECTION_ASM_OP) || !defined (OBJECT_FORMAT_ELF) */
+/* In gbl-ctors.h, ON_EXIT is defined if HAVE_ATEXIT is defined. In
+__bb_init_func and _bb_init_prg, __bb_exit_func is registered with ON_EXIT if
+ON_EXIT is defined. Thus we must not call __bb_exit_func here anymore if
+HAVE_ATEXIT is defined. */
+#ifndef HAVE_ATEXIT
#ifndef inhibit_libc
__bb_exit_func ();
#endif
+#endif /* !HAVE_ATEXIT */
#ifdef EXIT_BODY
EXIT_BODY;
#else