smithj@ichigo ~ $ gcc -o foo foo.c -static -nostartfiles -nostdlib /usr/bin/ld: failed to set dynamic section sizes: No such file or directory collect2: ld returned 1 exit status smithj@ichigo ~ $ cat foo.c int _start (void) { return 0; } int __start (void) { return 0; } int foo (void) { return 1; } int (*fp) (void) __attribute__ ((section (".init_array"))) = foo; smithj@ichigo ~ $