Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / gcc + march / 10 сообщений из 10, страница 1 из 1
21.10.2012, 21:11
    #38007500
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
Здравствуйте, объясните почему не компилируется под разные архитектуры:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
gcc -m32 -march=i386 -o ELF-i386-x86 example.c
gcc -m32 -march=i486 -o ELF-i486-x86 example.c
gcc -m32 -march=i586 -o ELF-i586-x86 example.c
gcc -m32 -march=i686 -o ELF-i686-x86 example.c

gcc -m32 -march=pentium3 -o ELF-pentium2-x86 example.c
gcc -m32 -march=pentium3 -o ELF-pentium3-x86 example.c
gcc -m32 -march=pentium3 -o ELF-pentium4-x86 example.c


во всех случаях получаю i386:

...
Рейтинг: 0 / 0
22.10.2012, 02:55
    #38007620
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
nauseousво всех случаях получаю i386А ты в этом уверен?
Открой http://www.skyfree.org/linux/references/ELF_Format.pdf , почитай страницу 1-4.
Открой http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html , почитай первый абзац.
...
Рейтинг: 0 / 0
22.10.2012, 08:28
    #38007668
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
White Owl, уверен.. - я же кинул кусок бинара, там четко во всех случаях прописано Intel 80386
...
Рейтинг: 0 / 0
22.10.2012, 12:01
    #38007895
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
nauseous, а внутри этого example ты используешь features для целевых архитектур
или просто пишешь printf('Hello world\n'); ?
...
Рейтинг: 0 / 0
22.10.2012, 18:03
    #38008635
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
nauseousWhite Owl, уверен.. - я же кинул кусок бинара, там четко во всех случаях прописано Intel 80386Если уверен, то прочитай спецификацию ELF еще раз. Потом еще раз и еще раз. Я тебе даже номер страницы сказал.
Когда перестанешь быть уверен - придешь извинишься.
...
Рейтинг: 0 / 0
25.10.2012, 23:30
    #38013863
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
maytonnauseous, а внутри этого example ты используешь features для целевых архитектур
или просто пишешь printf('Hello world\n'); ?
просто printf('Hello world\n');..
features это что?
...
Рейтинг: 0 / 0
25.10.2012, 23:31
    #38013865
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
White OwlnauseousWhite Owl, уверен.. - я же кинул кусок бинара, там четко во всех случаях прописано Intel 80386Если уверен, то прочитай спецификацию ELF еще раз. Потом еще раз и еще раз. Я тебе даже номер страницы сказал.
Когда перестанешь быть уверен - придешь извинишься.
я не настаиваю, а советуюсь.. на мануал легко ссылаться, ответь или не флуди - я по делу спросил
...
Рейтинг: 0 / 0
26.10.2012, 01:22
    #38013927
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
nauseous,

Опция -march, не смотря на название, задает не архитектуру для исполняемого файла, а всего лишь тип процессора под который будет оптимизирован код для выбранной архитектуры (-m32, она же i386)
То что вы хотите (чтобы тип проца под который оптимизировано показывался в заголовке ELF) не предусмотрено форматом ELF.
Там будет в любом случае будет показано i386 (для -m32).

Обычно тип процессора для программы указывается внешними по отношению к ELF средствами.
Например программа собирается в пакет и тип процессора (наряду с другими атрибутами) указывается в имени пакета.
...
Рейтинг: 0 / 0
26.10.2012, 08:38
    #38014013
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
Anatoly Moskovskynauseous,

Опция -march, не смотря на название, задает не архитектуру для исполняемого файла, а всего лишь тип процессора под который будет оптимизирован код для выбранной архитектуры (-m32, она же i386)
То что вы хотите (чтобы тип проца под который оптимизировано показывался в заголовке ELF) не предусмотрено форматом ELF.
Там будет в любом случае будет показано i386 (для -m32).

Обычно тип процессора для программы указывается внешними по отношению к ELF средствами.
Например программа собирается в пакет и тип процессора (наряду с другими атрибутами) указывается в имени пакета.
получается что под unix не реально собрать i486, i586.. так? или все таки возможность есть?
можно пример правильной сборки?
...
Рейтинг: 0 / 0
26.10.2012, 09:36
    #38014071
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
gcc + march
nauseousAnatoly Moskovskynauseous,

Опция -march, не смотря на название, задает не архитектуру для исполняемого файла, а всего лишь тип процессора под который будет оптимизирован код для выбранной архитектуры (-m32, она же i386)
То что вы хотите (чтобы тип проца под который оптимизировано показывался в заголовке ELF) не предусмотрено форматом ELF.
Там будет в любом случае будет показано i386 (для -m32).

Обычно тип процессора для программы указывается внешними по отношению к ELF средствами.
Например программа собирается в пакет и тип процессора (наряду с другими атрибутами) указывается в имени пакета.
получается что под unix не реально собрать i486, i586.. так? или все таки возможность есть?
можно пример правильной сборки?

Мда, пациент пошел непонятливый.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / gcc + march / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]