обрезание символьной информации
Файл сразу же похудел до 2.892 байт (под BSD — до 2.744), полностью сохранив свою работоспособность. С таким размером уже можно жить (особенно под BSD, где у мыщъха установлена старая версия компилятора, с годами становящегося все прожорливее и прожорливее). Естественно, сама операционная система тут не причем.
А теперь, отказавшись от услуг gcc, попробуем собрать файл вручную. Под BSD это осуществляется так (см. листинг 4):
$as -o elf_libc.o elf_libc.S
$ld -s -o elf_libc /usr/lib/crt1.o elf_libc.o -lc
$ls -l elf_libc
-rwxr-xr-x 1 root wheel 2.108 2108 Apr 18:39 elf_libc
$./elf_libc
hello,elf