On Wed January 18 2012, Jakob Bohm wrote: > On 1/18/2012 12:00 PM, Brooke, Simon wrote: > > Hi > > > > We have a box running Debian 2.1 still in production, and for complicated > > reasons we can't replace it immediately. I'm trying to compile OpenSSH for > > it, and to do that I need to compile OpenSSL. The issue I'm seeing is very > > similar to that reported by Alain Guibert here: > > http://permalink.gmane.org/gmane.comp.encryption.openssl.devel/10800 but I > > cannot find whether his issue was ever resolved. > > > > Essentially, the machine appears to be a i386 (although the Bogomips value > > seems suspiciously high): > > > > $ more /proc/cpuinfo > > processor : 0 > > cpu : ?86 > > model : 386 SX/DX > > vendor_id : GenuineIntel > > stepping : 9 > > fdiv_bug : no > > hlt_bug : no > > f00f_bug : no > > fpu : yes > > fpu_exception : yes > > cpuid : yes > > wp : yes > > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca > > cmov 16 17 19 21 22 mmx 24 25 26 27 28 29 31 > > bogomips : 3185.05 > The unknown flag bits indicates that this CPU is more recent than > what the /proc/cpuinfo code can actually understand, so the model > info is probably bogus.
Looks like a Pentium-II on a very old kernel, but I may be wrong. > > > > Linux kernel is 2.0.36: > > $ uname -a > > Linux devsys.dunlops.com 2.0.36 #1 Thu Jun 21 16:51:34 GMT 2001 i?86 unknown > > > > and it appears to know about ELF: > > $ file /lib/ld.so.1.9.10 > > /lib/ld.so.1.9.10: ELF 32-bit LSB executable, Intel 80386, version 1, > > statically linked, stripped > Yes, Debian has supported ELF at least since hamm (2.0), possibly > even before that (I don't have the history file handy right now). > > > > Output from make (after doing config) is as follows: > > > > $ make > > making all in crypto... > > make[1]: Entering directory `/tmp/simon/openssl-1.0.0f/crypto' > > gcc -I. -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN \ > > -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 \ > > -fomit-frame-pointer \ If you can over-ride this one for the sake of the old toolchain; > > -Wall -DOPENSSL_BN_ASM_PART_WORDS \ > > -DOPENSSL_IA32_SSE2 \ And over-ride this one for the sake of the old processor. It might 'just work' ;-) Mike > > -DOPENSSL_BN_ASM_MONT \ > > -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM \ > > -DWHIRLPOOL_ASM -c -o x86cpuid.o x86cpuid.s > > x86cpuid.s: Assembler messages: > > x86cpuid.s:188: Error: bad register name ('%xmm0') > > x86cpuid.s:189: Error: bad register name ('%xmm1') > > x86cpuid.s:190: Error: bad register name ('%xmm2') > > x86cpuid.s:191: Error: bad register name ('%xmm3') > > x86cpuid.s:192: Error: bad register name ('%xmm4') > > x86cpuid.s:193: Error: bad register name ('%xmm5') > > x86cpuid.s:194: Error: bad register name ('%xmm6') > > x86cpuid.s:195: Error: bad register name ('%xmm7') > > make[1]: *** [x86cpuid.o] Error 1 > > make[1]: Leaving directory `/tmp/simon/openssl-1.0.0f/crypto' > > make: *** [build_crypto] Error 1 > > > > This looks to me as though the GCC backend is trying to use the SSE2 > > instructions which address the XMM registers, which if I remember my > > ancient history weren't present on the i386. > > > > GCC version is 2.7.2.3 and was installed from a standard Debian package, > > but egcc 2.91.60 seems also to be available: > > $ dpkg -l | grep gcc > > ii egcc 2.91.60-5 The GNU (egcs) C compiler. > > ii gcc 2.7.2.3-7 The GNU C compiler. > > > > Let's be clear: I don't actually /want/ to compile this for the sake of > > compiling this, I just want a version of openssh that works; and as this is > > essentially industrial archaeology it isn't worth the developers wasting > > time making things work on what is essentially obsolete kit. So if anyone > > has a working binary either just of the openssl libraries or of all the > > stuff needed to support openssh, on an i386 running Linux 2.0.x, I'd be > > extremely grateful. But if not, I'd like to know how to get openssl to > > compile, if possible. > My guess: This is because the slink version of gas > (/usr/bin/as) is too old to know about MMX/SSE2 > instructions which are compiled but protected by > "if" statements checking at runtime if the CPU is > good enough. The file name strongly suggests this > is the file that does that detection. > > One workaround would be to setup a separate slink build > box (to avoid changing this machine in ways that might > break whatever is needing it to stay at slink) in a > virtual machine, and then on the build box install a > backported/recompiled binutils package based on the > latest code from lenny, while keeping the historic > gcc and libraries. > > A simpler method would be to compile a statically > linked openssh on a squeeze box with an up-to-date > openssl-dev package already installed, then simply > copy the resulting binaries to the squeeze box. > This will only work if static versions of the current > glibc work on 2.0.x kernels. > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager majord...@openssl.org > > ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org