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.


openssh-unix-dev mailing list