编译openssl时如何排除amd_3dnow指令集
在我们的生产Solaris x86 服务器上,我们没有编译器,因此我必须在单独的Solaris x86 上进行编译。编译服务器具有 md_3dnow 指令集,但生产服务器没有。有没有办法告诉 openssl config 或 make 排除 libssl.so 的 amd_3dnow 指令? prod/目标服务器上的 isainfo -v 告诉您:
- 64 位 amd64 应用程序:pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 mon sse3 Pause 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 mmx cmov sep cx8 tsc fpu
on our production solaris x86 server we dont have a compiler, so i have to compile on a separate solaris x86. The compilation server has the md_3dnow instruction set, but the production server does not. Is there a way to tell openssl config or make to exclude amd_3dnow instructions of the libssl.so? isainfo -v on the prod/target server tells:
- 64-bit amd64 applications: pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 mon sse3 pause sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
- 32-bit i386 applications: clmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 mon sse3 pause sse2 sse fxsr mmx cmov sep cx8 tsc fpu
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要使用
./config
,而是使用./Configure
手动配置源代码树(可能指定solaris64-x86_64-gcc
或solaris-x86-gcc
作为操作系统/编译器)。由于您似乎拥有带有 AES 的 Core i7 CPU,因此您还可以指定
-march=corei7-avx
(如果您有足够新的 gcc)来获得针对您的生产 CPU 进行优化的构建。但它不会在您的构建系统上运行。请参阅支持的-march
选项列表对于 x86 / x86-64 上的 gcc。Rather than using
./config
, use./Configure
to manually configure the source tree (probably specifying eithersolaris64-x86_64-gcc
orsolaris-x86-gcc
as the OS/compiler).Since you appear to have a Core i7 CPU with AES, you could also specify
-march=corei7-avx
(if you have a recent enough gcc) to get a build that is optimised for your production CPU. It won't run on your build system, though. Consult the list of supported-march
options for gcc on x86 / x86-64.