This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Qn regarding building an application of smallest size for ARM-11 using gcc
Ingo Krabbe writes:
> Am Dienstag, 27. Juni 2006 06:22 schrieb Binesh:
> > We are trying to build an application for ARM-11 using gcc and the
> > related auto make suite) that would occupy minimal size.
> >
> > After adding the -Os and -mthumb we noticed that the size of the
> > stripped executable with a dependency on libc.so and libz.so was about
> > 87K.
> > However, when we statically linked it the stripped size grew to 510 K.
> > We removed all code that uses any of string library or stdio and
> > instead use only system calls such as ioctl, read, write, mmap and
> > munmap. (verified using the symbol dumped out by readelf)
> > Despite this the size remains at 510K.
Don't guess why. Try linking with -Wl,-Map,app.map
This will give you a map file that tells you exactly why everything
gets linked.
> > Trying to link with -nostdlib fails as it refers to undefined
> > reference to ioctl, read, write, mmap and munmap.
> > Trying to link with -nostartfiles brought down the size to only 502K.
> >
> > Do the sys call routines need std libs to be linked in?
> > Is there an alternative to reduce the size of the statically linked
> > exe? (Assuming that it might be difficult to migrate all code to asm)
Can't you just use a small asm version of those syscalls? You've got
source for glibc, so writing the syscalls should only take a few
hours.
Andrew.