[Janitor] Remove EXIT_BODY, NEED_ATEXIT, ON_EXIT
Andreas Jaeger
aj@suse.de
Sat Jun 7 17:07:00 GMT 2003
The macros EXIT_BODY, NEED_ATEXIT, ON_EXIT are not defined anywhere, I
removed their usage.
The L_exit case is now really small, L_exit is needed only by
config/avr/t-avr, config/ip2k/t-ip2k and config/m68hc11/t-m68hc11-gas
(all implemented in assembler). Do we still need this?
Bootstrapped/regtested on i686-linux-gnu.
Ok to commit?
Andreas
2003-06-07 Andreas Jaeger <aj@suse.de>
* gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT.
* libgcc2.c (exit): Remove code dependend on NEED_ATEXIT, ON_EXIT,
EXIT_BODY.
* system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY.
* doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY.
============================================================
Index: gcc/gbl-ctors.h
--- gcc/gbl-ctors.h 22 Apr 2003 17:21:04 -0000 1.11
+++ gcc/gbl-ctors.h 7 Jun 2003 11:53:05 -0000
@@ -2,7 +2,7 @@
for getting g++ file-scope static objects constructed. This file
will get included either by libgcc2.c (for systems that don't support
a .init section) or by crtstuff.c (for those that do).
- Copyright (C) 1991, 1995, 1996, 1998, 1999, 2000
+ Copyright (C) 1991, 1995, 1996, 1998, 1999, 2000, 2003
Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@segfault.us.com)
@@ -37,10 +37,6 @@ Software Foundation, 59 Temple Place - S
Note that this file should only be compiled with GCC.
*/
-
-#ifdef NEED_ATEXIT
-extern int atexit (void (*) (void));
-#endif
/* Declare a pointer to void function type. */
============================================================
Index: gcc/libgcc2.c
--- gcc/libgcc2.c 4 Jun 2003 05:21:38 -0000 1.165
+++ gcc/libgcc2.c 7 Jun 2003 11:53:05 -0000
@@ -1673,74 +1673,4 @@ func_ptr __DTOR_LIST__[2];
#include "gbl-ctors.h"
-#ifdef NEED_ATEXIT
-
-#ifndef ON_EXIT
-
-# include <errno.h>
-
-static func_ptr *atexit_chain = 0;
-static long atexit_chain_length = 0;
-static volatile long last_atexit_chain_slot = -1;
-
-int
-atexit (func_ptr func)
-{
- if (++last_atexit_chain_slot == atexit_chain_length)
- {
- atexit_chain_length += 32;
- if (atexit_chain)
- atexit_chain = (func_ptr *) realloc (atexit_chain, atexit_chain_length
- * sizeof (func_ptr));
- else
- atexit_chain = (func_ptr *) malloc (atexit_chain_length
- * sizeof (func_ptr));
- if (! atexit_chain)
- {
- atexit_chain_length = 0;
- last_atexit_chain_slot = -1;
- errno = ENOMEM;
- return (-1);
- }
- }
- atexit_chain[last_atexit_chain_slot] = func;
- return (0);
-}
-
-extern void _cleanup (void);
-extern void _exit (int) __attribute__ ((__noreturn__));
-
-void
-exit (int status)
-{
- if (atexit_chain)
- {
- for ( ; last_atexit_chain_slot-- >= 0; )
- {
- (*atexit_chain[last_atexit_chain_slot + 1]) ();
- atexit_chain[last_atexit_chain_slot + 1] = 0;
- }
- free (atexit_chain);
- atexit_chain = 0;
- }
-#ifdef EXIT_BODY
- EXIT_BODY;
-#else
- _cleanup ();
-#endif
- _exit (status);
-}
-
-#else /* ON_EXIT */
-
-/* Simple; we just need a wrapper for ON_EXIT. */
-int
-atexit (func_ptr func)
-{
- return ON_EXIT (func);
-}
-
-#endif /* ON_EXIT */
-#endif /* NEED_ATEXIT */
-
#endif /* L_exit */
============================================================
Index: gcc/system.h
--- gcc/system.h 4 Jun 2003 11:35:09 -0000 1.151
+++ gcc/system.h 7 Jun 2003 11:53:05 -0000
@@ -645,7 +645,7 @@ typedef char _Bool;
ROUND_TYPE_SIZE_UNIT CONST_SECTION_ASM_OP CRT_GET_RFIB_TEXT \
DBX_LBRAC_FIRST DBX_OUTPUT_ENUM DBX_OUTPUT_SOURCE_FILENAME \
DBX_WORKING_DIRECTORY INSN_CACHE_DEPTH INSN_CACHE_SIZE \
- INSN_CACHE_LINE_WIDTH
+ INSN_CACHE_LINE_WIDTH NEED_ATEXIT ON_EXIT EXIT_BODY
/* Hooks that are no longer used. */
#pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \
============================================================
Index: gcc/doc/tm.texi
--- doc/tm.texi 4 Jun 2003 17:50:44 -0000 1.228
+++ doc/tm.texi 7 Jun 2003 11:53:05 -0000
@@ -9011,30 +9011,6 @@ The definition should be a C statement (
appropriate rtl instructions. It is used only when compiling the end of
@code{main}.
-@item NEED_ATEXIT
-@findex NEED_ATEXIT
-Define this if the target system lacks the function @code{atexit}
-from the ISO C standard. If this macro is defined, a default definition
-will be provided to support C++. If @code{ON_EXIT} is not defined,
-a default @code{exit} function will also be provided.
-
-@item ON_EXIT
-@findex ON_EXIT
-Define this macro if the target has another way to implement atexit
-functionality without replacing @code{exit}. For instance, SunOS 4 has
-a similar @code{on_exit} library function.
-
-The definition should be a functional macro which can be used just like
-the @code{atexit} function.
-
-@item EXIT_BODY
-@findex EXIT_BODY
-Define this if your @code{exit} function needs to do something
-besides calling an external function @code{_cleanup} before
-terminating with @code{_exit}. The @code{EXIT_BODY} macro is
-only needed if @code{NEED_ATEXIT} is defined and @code{ON_EXIT} is not
-defined.
-
@findex INSN_SETS_ARE_DELAYED
@item INSN_SETS_ARE_DELAYED (@var{insn})
Define this macro as a C expression that is nonzero if it is safe for the
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030607/37ab202d/attachment.sig>
More information about the Gcc-patches
mailing list