Serg79, см. параметр "--oformat". Список поддерживаемых, данной версией binutils, форматов можно получить с помощью "objdump -i". Т.е. для a.out нужно указать --oformat=a.out-i386-linux (gcc <...> -Wl,--oformat=a.out-i386-linux).
На первый взгляд все просто... Но в случае выходного формата --oformat=a.out-i386-linux, ld ожидает на вход объектные файлы a.out. Но умолчальный (Linux) gcc не умеет, как я понимаю, собирать объектные файлы отличные от ELF. Теоретически можно преобразовать объектные файлы ELF в a.out с помощью objcopy, а потом натравить на них, ld - но у меня это не вышло.
На первый взгляд все просто... Но в случае выходного формата --oformat=a.out-i386-linux, ld ожидает на вход объектные файлы a.out. Но умолчальный (Linux) gcc не умеет, как я понимаю, собирать объектные файлы отличные от ELF. Теоретически можно преобразовать объектные файлы ELF в a.out с помощью objcopy, а потом натравить на них, ld - но у меня это не вышло.
Вот и я о том же. Передача параметра --oformat=a.out-i386-linux у меня приводит к тому, что линковщик начинает ругаться и прекрощает свою работу. Я пытался даже формировать выходной файл и через скрипт линкера (параметр: OUTPUT), но он также отказывается на выходе выдовать "a.out". Хотя команда "objdump -i" сообщает, что данный формат поддерживается.
Вот я и обращаюсь за советом к тем программерам, которые начинали программировать по linux еще на заре его становления, так как в те времена полностью рулил "a.out". Ведь как то можно же получить на выходе "a.out".