[PATCH] New configuration option for lite exit

Joey Ye joey.ye@arm.com
Wed Apr 17 10:00:00 GMT 2013


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lite-exit-trunk-0415-1.patch
Type: application/octet-stream
Size: 8285 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20130417/9b105660/attachment.obj>


More information about the Newlib mailing list