Эльфы большие и маленькие

         

ручная" сборка


На диске образуется файл elf_libc с размером всего 2.108 байт, что на 636 байт короче сборки gcc с последующем стрипаньем символьной информации. То есть, "ручная" сборка намного эффективнее!

C Linux'ом и всякими прочими SUN'ми и Solaris'ми в этом плане намного сложнее и стартовый код у них расположен черт знает где, но это еще полбеды. Значительно хуже, что стартовый код содержит дикие зависимости, влекущее за собой дополнительные библиотеки, находящиеся в самых непредсказуемых местах (см. рис. 1). Зубков дает несколько рецептов сборок (http://www.msiu.ru/~law10/index.htm?page=source%2Fhtml%2Fch11_04.htm), но на проверку они оказываются нерабочими. В частности, он пишет, что под Linux, программа должна компоноваться так: "ld -s -m elf_i386 -o helloelf.lnx /usr/lib/crt1.o /usr/lib/crti.o -L/usr/lib/gcc-lib/i586-cubbi-linuxlibc1/2.7.2 helloelf.o -lc -lgcc /usr/lib/crtn.o". Это же умом поехать можно, пока наберешь такую строку, но на моем knoppix'е она не работает, потому что директория /usr/lib/gcc-lib/ не содержит никакого i586-cubbi-linuxlibc1, а опция -lgcc

дает ошибку, поскольку предписывает включать библиотеку libgcc.a, которая у меня (то есть у knoppix'а) опять-таки находится совсем не там, где ожидается. Если мыщъх не ошибается, то вариант Зубкова больше для cygwin'а подходит.



Содержание раздела