This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
RE: [PATCH] New configuration option for lite exit
- From: "Joey Ye" <joey dot ye at arm dot com>
- To: <newlib at sourceware dot org>
- Cc: "Joey Ye" <Joey dot Ye at arm dot com>
- Date: Sat, 27 Apr 2013 17:20:34 +0800
- Subject: RE: [PATCH] New configuration option for lite exit
- References: <000001ce3b52$4646b880$d2d42980$ at arm dot com>
Ping
> -----Original Message-----
> From: Joey Ye [mailto:joey.ye@arm.com]
> Sent: Wednesday, April 17, 2013 6:00 PM
> To: newlib@sourceware.org
> Cc: Joey Ye
> Subject: [PATCH] New configuration option for lite exit
>
> This patch introduces lite exit to reduce code size for these applications
who
> don't care finalization. Lite exit weakly references to atexit,
register_exitproc
> and call_exitprocs functions in startup and exit.
>
> Lite exit is enabled/disabled by --enable-lite-exit. Currently this
feature is
> only implemented for ARM as changes in libgloss is target specific. Other
> architecture can successfully build with --enable-lite-exit but references
to
> clean up functions will be all non-weak, unless change in libgloss is
applied.
>
> ChangeLog:
> newlib/
> Lite exit support.
> * acconfig.h (_LITE_EXIT): New macro.
> * configure.in (enable-lite-exit): New option.
> (_LITE_EXIT): Define new macro.
> * configure: Regenerated.
> * newlib.hin (_LITE_EXIT): New macro.
> * libc/stdlib/__call_atexit.c (register_fini): Not unconditionally
> called in init.
> * libc/stdlib/atexit.c (__atexit_dummy): Explicit reference to
> __call_exitprocs.
> * libc/stdlib/cxa_atexit.c (__register_exitproc): Weak reference.
> * libc/stdlib/cxa_finalize.c (__cxa_finalize_dummy): Explicit
> reference to __register_exitproc.
> (__cxa_finalize): Remove tail white space.
> * libc/stdlib/exit.c (exit): Remove TWS and weak reference to
> __call_exitprocs.
>
> libgloss/
> * arm/crt0.S (_mainCRTStartup): Weak reference to atexit and _fini
> when lite exit is enabled.