LINUX.ORG.RU

Может вообще -march=native поставить?

gcc давно уже его нормально определяет.

J ★★★★
()
Ответ на: комментарий от devl547

Это Вы про vt-x и vt-d? Ну, да, CPU держит такие флаги.

GreenBag ★★
() автор топика

VMware ничего не эмулирует. Это не эмулятор. Ставь флаги для своего процессора.

Black_Shadow ★★★★★
()

Можете посмотреть так:

gcc -c -Q -march=native --help=target

Но для применения лучше воспользоваться этой командой:

gcc -march=native -c -o /dev/null -x c - &
ps af | grep cc1 && kill -9 `pgrep gcc`

kostik87 ★★★★★
()
Ответ на: комментарий от Black_Shadow

Да, это я осилил. Т.е. я могу использовать теже флаги, как если б я устанавливал на «голое» железо?

GreenBag ★★
() автор топика
Ответ на: комментарий от GreenBag

Ну сам подумай — любая железка суть диапазон в адресном пространстве процессора. Аппаратная виртуализация призвана проложить мостик к этим адресным пространствам. Может, есть какие-то тонкости в подключении специфичных железяк или неполнота реализации самой ВМ, не могу сказать за VMware, но в целом должно работать.

Deleted
()
Ответ на: Нельзя так делать от Deleted

За уточнение спасибо, но читать не стал, просто приму к сведению., но всё же усомнюсь, вот мой вывод:

ps af | grep cc1 && kill -9 `pgrep gcc`
 5588 pts/1    T      0:00  |   \_ /usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.4/cc1 -quiet - -D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=core2 -quiet -dumpbase - -auxbase-strip /dev/null -o /tmp/ccN48AWz.s
 5590 pts/1    S+     0:00  \_ grep --colour=auto cc1

[1]+  Stopped                 gcc -march=native -c -o /dev/null -x c -

gcc -c -Q -march=native --help=target | grep включено
  -m64                        		[включено]
  -m80387                     		[включено]
  -m96bit-long-double         		[включено]
  -malign-stringops           		[включено]
  -mcx16                      		[включено]
  -mfancy-math-387            		[включено]
  -mfp-ret-in-387             		[включено]
  -mfused-madd                		[включено]
  -mglibc                     		[включено]
  -mhard-float                		[включено]
  -mieee-fp                   		[включено]
  -mno-sse4                   		[включено]
  -mpush-args                 		[включено]
  -mred-zone                  		[включено]
  -msahf                      		[включено]
  -mstackrealign              		[включено]
  -mtls-direct-seg-refs       		[включено]

Ну а насчёт второй команды что же вы молчите., всё же она более пригодна для использования.

Как видите, всё очень похоже.

kostik87 ★★★★★
()

ТАкие, как на голое железо.

ymuv ★★★★
()
Ответ на: комментарий от GreenBag

Т.е. я могу использовать теже флаги, как если б я устанавливал на «голое» железо?

Да.

Black_Shadow ★★★★★
()

Всем спасибо, буду пробовать.

GreenBag ★★
() автор топика
Ответ на: комментарий от kostik87

Ну а насчёт второй команды что же вы молчите

Вторая компиляет. Хотя «-o /dev/null - » кажется мне странным, тут ведь исходник запрашивается с stdin, как я понимаю?

Deleted
()

А какая разница? Вмварь всё равно не компилируется, а тупо ставится бинарником, лол. Кроме модулей, конечно.

Kindly_Cat
()
Ответ на: комментарий от kostik87

а вместо -Q --help=* таки лучше

echo "int main() { return 0; }" |LANG=en gcc -march=native -v -Q -x c - 2>&1 | tr "\n" " " | sed -e "s|.*options enabled:||" -e "s|Compiler.*||" -e 's| |\n|g' | sort -u
или просто
echo "int main() { return 0; }" |LANG=en gcc -march=native -v -Q -x c - 2>&1

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