This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Disable dynamic allocation in atexit


Jeff Johnston wrote:

> I had meant for you to wait.  There should at least be a way to default
> this for a platform in configure.host.  See newlib_io_pos_args for an
> example unless you want me to do it.

Here's a patch to do this.  I tested it by (temporarily) modifying
arm*-*-* to avoid dynamic atexit by default, and verifying that newlib.h
was generated with the correct value, both with and without that change,
as well as by verifying that manual configuration options still worked.

If you'd like me to apply this, shout; otherwise, say the word and I'll
revert the other patch.

Thanks,

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713
2006-03-20  Mark Mitchell  <mark@codesourcery.com>

	* configure.host: Allow hosts to set the default
	newlib_atexit_dynamic_alloc value.
	* configure.in: Likewise.
	* configure: Regenerated.

Index: configure.host
===================================================================
RCS file: /cvs/src/src/newlib/configure.host,v
retrieving revision 1.78
diff -c -5 -p -r1.78 configure.host
*** configure.host	31 Jan 2006 19:33:56 -0000	1.78
--- configure.host	21 Mar 2006 03:18:41 -0000
*************** have_crt0=
*** 61,70 ****
--- 61,71 ----
  use_libtool=no
  have_sys_mach_dir=no
  default_newlib_io_long_long=no
  default_newlib_io_long_double=no
  default_newlib_io_pos_args=no
+ default_newlib_atexit_dynamic_alloc=yes
  aext=a
  oext=o
  
  case "${target_optspace}:${host}" in
    yes:*)
*************** if [ "x${newlib_io_pos_args}" = "x" ]; t
*** 736,743 ****
--- 737,751 ----
  	if [ ${default_newlib_io_pos_args} = "yes" ]; then
  		newlib_io_pos_args="yes";
  	fi
  fi
  
+ # Disable atexit dynamic allocation if requested.
+ if [ "x${newlib_atexit_dynamic_alloc}" = "x" ]; then
+ 	if [ ${default_newlib_atexit_dynamic_alloc} = "yes" ]; then
+ 		newlib_atexit_dynamic_alloc="yes"; 
+ 	fi
+ fi
+ 
  if test -z "${have_crt0}" && test -n "${sys_dir}"; then
    have_crt0="yes"
  fi
Index: configure.in
===================================================================
RCS file: /cvs/src/src/newlib/configure.in,v
retrieving revision 1.29
diff -c -5 -p -r1.29 configure.in
*** configure.in	21 Mar 2006 00:57:34 -0000	1.29
--- configure.in	21 Mar 2006 03:18:41 -0000
*************** AC_ARG_ENABLE(newlib-atexit-dynamic-allo
*** 92,102 ****
    case "${enableval}" in
      yes) newlib_atexit_dynamic_alloc=yes ;;
      no)  newlib_atexit_dynamic_alloc=no  ;;
      *)   AC_MSG_ERROR(bad value ${enableval} for newlib-atexit-dynamic-alloc option) ;;
    esac
!  fi], [newlib_atexit_dynamic_alloc=yes])dnl
  
  NEWLIB_CONFIGURE(.)
  
  dnl We have to enable libtool after NEWLIB_CONFIGURE because if we try and
  dnl add it into NEWLIB_CONFIGURE, executable tests are made before the first
--- 92,102 ----
    case "${enableval}" in
      yes) newlib_atexit_dynamic_alloc=yes ;;
      no)  newlib_atexit_dynamic_alloc=no  ;;
      *)   AC_MSG_ERROR(bad value ${enableval} for newlib-atexit-dynamic-alloc option) ;;
    esac
!  fi], [newlib_atexit_dynamic_alloc=${newlib_atexit_dynamic_alloc}])dnl
  
  NEWLIB_CONFIGURE(.)
  
  dnl We have to enable libtool after NEWLIB_CONFIGURE because if we try and
  dnl add it into NEWLIB_CONFIGURE, executable tests are made before the first

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]