gcc-newlib includes unwanted stuff
Gerhard Heinzel
gerhard.heinzel@nao.ac.jp
Mon May 29 19:23:00 GMT 2000
I am using "h8300-hms-gcc" version 2.95.2 with
"newlib-1.8.1" to compile C programs for an embedded
application on the Hitachi 3048F processor (which includes on
the chip 4k RAM, 128k ROM and lots of useful functions).
newlib was configured as
./configure --host=i686-pc-linux-gnu --target=h8300-hms --norecursion
I found that the library wastes a lot of memory for things
that I don't need:
- the standard initialization routine calls "_exit" which in
turn calls "malloc". This is something I do neither need
nor want, since it uses up a lot of my precious 4k RAM.
Luckily I could easily get rid of that one by not calling
"_exit" any more in "crt0.o". "exit" in my embedded
application is achieved via the power switch.
However, another one I cannot get rid of so easily and that's
why I ask for help:
- I need some floating point routines (from fp-bit.o), and
also one square root of a number which I know to be
positive. The linker includes "errno.o" because of the
"sqrt", and "errno.o" in turn includes "impure.o" which
comes with a huge "static struct _reent
__ATTRIBUTE_IMPURE_DATA__ impure_data" This structure takes
more than 600 bytes, which is more than 16% of my total
RAM.
How can I avoid linking this "impure.o" ?
Thanks for any hints,
Gerhard
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
More information about the crossgcc
mailing list