как исключить набор команд amd_3dnow при компиляции openssl - PullRequest
0 голосов
/ 05 января 2011

на нашем производственном сервере Solaris x86 у нас нет компилятора, поэтому я должен скомпилировать его на отдельном Solaris x86. На сервере компиляции установлен набор команд md_3dnow, а на рабочем сервере его нет. Есть ли способ указать openssl config или make, чтобы исключить amd_3dnow инструкции из libssl.so? isainfo -v на сервере prod / target сообщает:

  • 64-разрядные приложения amd64: pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 mon sse3 пауза sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
  • 32-разрядные приложения i386: clmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 mon sse3 пауза sse2 sse fxsr ммх cmov sep cx8 tsc fpu

1 Ответ

0 голосов
/ 05 января 2011

Вместо использования ./config используйте ./Configure для ручной настройки дерева исходных кодов (возможно, указав solaris64-x86_64-gcc или solaris-x86-gcc в качестве ОС / компилятора).

Поскольку у вас, похоже, естьCore i7 CPU с AES, вы также можете указать -march=corei7-avx (если у вас достаточно свежего gcc), чтобы получить сборку, оптимизированную для вашего производственного CPU.Однако он не будет работать в вашей системе сборки.Обратитесь к списку поддерживаемых -march опций для gcc на x86 / x86-64.

...