diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-10-18 08:43:05 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-10-18 08:43:05 +0000 |
commit | e4aa6ea1121d24409f9fd5068ce4d3823d4eafc1 (patch) | |
tree | b8550467b0f4a9e5be80d08a00573176a11929ff /newlib | |
parent | 05b637e340d536f7c0d3aba51659bef31d191668 (diff) | |
download | newlib-e4aa6ea1121d24409f9fd5068ce4d3823d4eafc1.zip newlib-e4aa6ea1121d24409f9fd5068ce4d3823d4eafc1.tar.gz newlib-e4aa6ea1121d24409f9fd5068ce4d3823d4eafc1.tar.bz2 |
* configure.in (enable-newlib-global-atexit): New option.
* configure: Regenerated.
* newlib.hin (_REENT_GLOBAL_ATEXIT): Place-holder.
* README (enable-newlib-global-atexit): Description for
new option.
Diffstat (limited to 'newlib')
-rw-r--r-- | newlib/ChangeLog | 8 | ||||
-rw-r--r-- | newlib/README | 6 | ||||
-rwxr-xr-x | newlib/configure | 22 | ||||
-rw-r--r-- | newlib/configure.in | 17 | ||||
-rw-r--r-- | newlib/newlib.hin | 3 |
5 files changed, 56 insertions, 0 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index a101ffb..a3e4d61 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,11 @@ +2013-10-18 Joey Ye <joey.ye@arm.com> + + * configure.in (enable-newlib-global-atexit): New option. + * configure: Regenerated. + * newlib.hin (_REENT_GLOBAL_ATEXIT): Place-holder. + * README (enable-newlib-global-atexit): Description for + new option. + 2013-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de> * libc/include/sys/unistd.h (MAXPATHLEN): Delete. diff --git a/newlib/README b/newlib/README index a8aba99..6f3b06e 100644 --- a/newlib/README +++ b/newlib/README @@ -288,6 +288,12 @@ One feature can be enabled by specifying `--enable-FEATURE=yes' or Disable dynamic allocation of atexit entries. Most hosts and targets have it enabled in configure.host. +`--enable-newlib-global-atexit' + Enable atexit data structure as global variable. By doing so it is + move out of _reent structure, and can be garbage collected if atexit + is not referenced. + Disabled by default. + `--enable-newlib-reent-small' Enable small reentrant struct support. Disabled by default. diff --git a/newlib/configure b/newlib/configure index e05a2d3..958a5cd 100755 --- a/newlib/configure +++ b/newlib/configure @@ -788,6 +788,7 @@ enable_newlib_iconv_from_encodings enable_newlib_iconv_to_encodings enable_newlib_iconv_external_ccs enable_newlib_atexit_dynamic_alloc +enable_newlib_global_atexit enable_newlib_reent_small enable_newlib_fvwrite_in_streamio enable_newlib_fseek_optimization @@ -1457,6 +1458,7 @@ Optional Features: --enable-newlib-iconv-to-encodings enable specific comma-separated list of \"to\" iconv encodings to be built-in --enable-newlib-iconv-external-ccs enable capabilities to load external CCS files for iconv --disable-newlib-atexit-dynamic-alloc disable dynamic allocation of atexit entries + --enable-newlib-global-atexit enable atexit data structure as global --enable-newlib-reent-small enable small reentrant struct support --disable-newlib-fvwrite-in-streamio disable iov in streamio --disable-newlib-fseek-optimization disable fseek optimization @@ -2352,6 +2354,19 @@ else newlib_atexit_dynamic_alloc=${newlib_atexit_dynamic_alloc} fi +# Check whether --enable-newlib-global-atexit was given. +if test "${enable_newlib_global_atexit+set}" = set; then : + enableval=$enable_newlib_global_atexit; if test "${newlib_global_atexit+set}" != set; then + case "${enableval}" in + yes) newlib_global_atexit=yes ;; + no) newlib_global_atexit=no ;; + *) as_fn_error $? "bad value ${enableval} for newlib-global-atexit option" "$LINENO" 5 ;; + esac + fi +else + newlib_global_atexit=no +fi + # Check whether --enable-newlib-reent-small was given. if test "${enable_newlib_reent_small+set}" = set; then : enableval=$enable_newlib_reent_small; case "${enableval}" in @@ -12321,6 +12336,13 @@ _ACEOF fi +if test "${newlib_global_atexit}" = "yes"; then +cat >>confdefs.h <<_ACEOF +#define _REENT_GLOBAL_ATEXIT 1 +_ACEOF + +fi + if test "${newlib_fvwrite_in_streamio}" = "yes"; then cat >>confdefs.h <<_ACEOF #define _FVWRITE_IN_STREAMIO 1 diff --git a/newlib/configure.in b/newlib/configure.in index 8e742f7..d260815 100644 --- a/newlib/configure.in +++ b/newlib/configure.in @@ -115,6 +115,19 @@ AC_ARG_ENABLE(newlib-atexit-dynamic-alloc, esac fi], [newlib_atexit_dynamic_alloc=${newlib_atexit_dynamic_alloc}])dnl +dnl Support --enable-newlib-global-atexit +dnl Enable atexit data structure as global variables to save memory usage in +dnl _reent. +AC_ARG_ENABLE(newlib-global-atexit, +[ --enable-newlib-global-atexit enable atexit data structure as global], +[if test "${newlib_global_atexit+set}" != set; then + case "${enableval}" in + yes) newlib_global_atexit=yes ;; + no) newlib_global_atexit=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-global-atexit option) ;; + esac + fi], [newlib_global_atexit=no])dnl + dnl Support --enable-newlib-reent-small AC_ARG_ENABLE(newlib-reent-small, [ --enable-newlib-reent-small enable small reentrant struct support], @@ -383,6 +396,10 @@ if test "${newlib_atexit_dynamic_alloc}" = "yes"; then AC_DEFINE_UNQUOTED(_ATEXIT_DYNAMIC_ALLOC) fi +if test "${newlib_global_atexit}" = "yes"; then +AC_DEFINE_UNQUOTED(_REENT_GLOBAL_ATEXIT) +fi + if test "${newlib_fvwrite_in_streamio}" = "yes"; then AC_DEFINE_UNQUOTED(_FVWRITE_IN_STREAMIO) fi diff --git a/newlib/newlib.hin b/newlib/newlib.hin index e4f6230..0d057e3 100644 --- a/newlib/newlib.hin +++ b/newlib/newlib.hin @@ -73,6 +73,9 @@ /* Define if lite version of exit supported. */ #undef _LITE_EXIT +/* Define if declare atexit data as global. */ +#undef _REENT_GLOBAL_ATEXIT + /* * Iconv encodings enabled ("to" direction) */ |