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: Freeing __malloc_av and impure_data


On Nov 26 15:42, Aras Vaichas wrote:
> Hi, I'm building a binary for a non-Linux embedded AVR32 application
> and I'm getting close to my 16K of SRAM limit.
> 
> Looking at my elf file, I see that impure_data uses 1K of memory.
> 
> 00000044 l     O .data   00000400 impure_data
> 
> I understand that it is somehow used for rentrancy in newlib, but
> AFAIK I don't need it.
> 
> Is there a way to reduce this, or remove it completely?

You can't just remove it since it's used for more than just reentrency.
But you can shrink it for small targets.  The --enable-newlib-reent-small
configure option will do that for you.

> There is also a whole load of malloc related data as well:
> 
> 00000444 g     O .data   00000408 __malloc_av_
> 
> Can I free that up as well?
> 
> I use very little of newlib, and I've even replaced the stdio library
> with my own to reduce the overall size and footprint. It would be
> great if I could also remove or reduce these two  symbols.

You can get rid of it by overriding newlib's malloc with your own
malloc.  Just define MALLOC_PROVIDED so the default malloc functionality
will not be built into newlib.  Alternatively, make sure not to use
functions which potentially allocate space dynamically.  printf is a
good candidate.


Corinna

-- 
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat


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