LINUX.ORG.RU

Ничем. Один алиас другого.

anonymous
()

А почему тогда в исходниках slackware : -march=i386 -mcpu=i686

zhenya
() автор топика

В принципе, если мы имеем ввиду платформу i386, то вот, что написано в мануале:

3.17.15 Intel 386 Options
[skip]
-march=cpu-type
Generate instructions for the machine type cpu-type. The choices for cpu-type are the same as for `-mcpu'. Moreover, specifying `-march=cpu-type' implies `-mcpu=cpu-type'.

Т.е. по крайней мере в случае архитектуры i386 это синонимы.

Почему в слаке прописаны обе опции? Я не знаю. И это не только в слаке, а много где еще.
Не думаю, что не читали мануал, может так больше нравится.

anonymous
()

Вот еще оттуда же:

-mcpu=cpu-type
[skip]

While picking a specific cpu-type will schedule things appropriately for that particular chip, the compiler will not generate any code that does not run on the i386 without the `-march=cpu-type' option being used.

Так что не все так просто. Получается, что -march == -mcpu, но -mcpu != -march.
По логике получается, что в случае -march=i386 & -mcpu=i686 код должен оптимизироваться под i686, но так, чтобы при этом его можно было запустить на i386, о как!
Сомневаюсь, что так оно и есть (программа с -march=i386 -mcpu=pentium4 на моем атлоне выпала в корку).

Спасибо за вопрос, благодаря ему я более внимательно прочел доку.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.