Я пытаюсь создать динамически связанный исполняемый файл (elf_i386) без gcc.Программа очень проста (только printf) ... вот команды:
$ gcc -c simple.c
$ ld -o simple -dynamic-linker /lib/ld-linux.so.2 --entry main /usr/lib/crt1.o /usr/lib/crti.o simple.o -lc /usr/lib/crtn.o
Исполняемый файл создан, а также команда file и команда ldd показывают правильный вывод ... Однако, когда я запускаю программупосле вызова printf я получаю ошибку сегментации ... я проверил с помощью objdump исполняемый файл и думаю, что проблема связана с dtors ... кажется, что компилируется с:
$gcc -o simple simple.c
секцией.dtors присутствует, пока его нет внутри исполняемого файла, созданного непосредственно с помощью ld: (
Есть идеи?