OpenSSL compile flags

Ryan B. Lynch rlynch at
Wed Jan 4 03:19:27 EST 2006

When building OpenSSL version 0.9.7i (and all prior versions that I've 
seen) on Linux, the compiler flags passed to 'gcc' include:

    "-O3 -fomit-frame-pointer -mcpu=pentium"

This occurs even when the output of `uname -m` and `arch` are "i486".  I 
have a few machines with hacked 'uname' and 'arch' commands that will 
report "i486" even when the real arch is "i686", for use in compiling 
binaries for other i486 systems.  Looking at the 'config' and 
'Configure' scripts, it appears that the arch value is guessed based on 
'uname', 'arch', and 'cat /proc/cpuinfo', in different cases.  I guess 
I'm running into a situation where the configure script is looking at 
"/proc/cpuinfo", which I can't do a quick-and-easy hack to give false data.

Is there an option that I'm missing to pass a particular arch value to 
compile OpenSSL for?  Right now, I'm working around this by 'sed'ing the 
above-mentioned string out of the CCFLAGS variable in the Makefile and 
replacing it with "-O2 -march=i586 -pipe".  Is this not proper, or 
should it work OK?  (It seems to work fine, in running it, but there's a 
lot of things I wouldn't know about it.)

Also, as a side-note, most of the literature I've seen regarding 'gcc' 
says that the "-mcpu=" flag is deprecated, and that "-march=" should be 
used instead.  Is there a reason why OpenSSL uses "-mcpu="?

Thanks for the time and help, here--OpenSSL and OpenSSH are wonderful 
tools, and I appreciate all of the effort that goes into them.


More information about the openssh-unix-dev mailing list