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
Rather than using
./config, use./Configureto manually configure the source tree (probably specifying eithersolaris64-x86_64-gccorsolaris-x86-gccas 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-marchoptions for gcc on x86 / x86-64.