Goofy
Goofy

Reputation: 5377

Building minimal standalone executable with GCC

I have few programs (written in C) implementing some algorithms, that I use to measure computation time. Whole data is implemented as static libraries directly in code, there's no input and output from these programs. There's also no C library calls (no printfs etc.).

I want to build fully independent and minimal executable. I don't want to link my program with libgcc (target CPU has coprocessor, so I don't need to emulate floating point arithmetic), C library or any other. Actually I want to make my program as independent as it's possible. On Linux ELF program has to be linked only with crt0.o to run properly, right?

I'm mostly asking because I'm curious ;)

Upvotes: 3

Views: 2151

Answers (1)

Alan Curry
Alan Curry

Reputation: 14711

Link with gcc -nostdlib, then use objdump -h and strip --remove-section=... to really make it small by getting rid of silly things like the comment section and the exception handling frame information sections. Keep removing sections until it stops working.

And compile with -Os of course

Upvotes: 3

Related Questions