This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


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

gcc-newlib includes unwanted stuff


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


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