|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Grishka Chervonets 2:5020/400 19 Aug 2006 13:26:56 To : Dmitry E Oboukhov Subject : Re: получить чистый бинарник -------------------------------------------------------------------------------- Dmitry E. Oboukhov <Dmitry.E.Oboukhov@p151.f75.n5004.z2.fidonet.org> wrote: AK>>>> ну да, кто за тебя crt1.o и прочую требуху будет подключать? DEO>>> а где об этом почитать? AK>> не знаю. info на gcc и ld не содержит этой информации? DEO> нужно откуда-то поиметь информацию _как_ процесс происходит DEO> а из простого перечня ключей к программе это сложно :) DEO> DEO> может есть хауту на сию тему? поищи что-нибудь для gas-ассембляторов. у меня нет avr-gcc, если не в тему, прошу прощения. итак, берем твой файл в качестве исходного $ gcc -c test.c $ nm test.o 00000000 T main ^^^^--точка входа. других символов ты не определял $ ld -e main -o test.elf test.o ^^^^^^^--необходимо явно указать точку входа или обозвать ее _start $ objcopy -S -O binary test.elf test.bin тоже самое можно сделать без objcopy $ ld --oformat binary -e main -o test.bin test.o проверка $ objdump -h test.elf test.elf: формат файла elf32-i386 Разделы: Инд Имя Размер VMA LMA Файл Вырав 0 .text 00000012 08048094 08048094 00000094 2**2 ^^^^^^^^ 12h = 18 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 00000000 080490a8 080490a8 000000a8 2**2 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 080490a8 080490a8 000000a8 2**2 ALLOC 3 .comment 00000026 00000000 00000000 000000a8 2**0 $ ll test.bin -rwxr-xr-x 1 chg chg 18 2006-08-19 12:47 test.bin ^^ кстати, gcc не вставил в эльф ненужного вызова _exit $ objdump -d test.elf test.elf: формат файла elf32-i386 Диассемблирование раздела .text: 08048094 <main>: 8048094: 55 push %ebp 8048095: 89 e5 mov %esp,%ebp 8048097: 83 ec 08 sub $0x8,%esp 804809a: 83 e4 f0 and $0xfffffff0,%esp 804809d: b8 00 00 00 00 mov $0x0,%eax 80480a2: 29 c4 sub %eax,%esp 80480a4: eb fe jmp 80480a4 <main+0x10> ну и не последок, посмотри на опции ld --section-start и -T{bss,data,text}; думаю, что пригодятся ;) -- http://chg.fatal.ru Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: CHG (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1171561a59d42.html, оценка из 5, голосов 10
|