Greetings - We have been building OpenSSL on ppc64 and S390X platforms with Linux and have found some Configure errors in the 0.9.8 tree when compiling for 64 bit. These errors include:
1. Building as 64bit on ppc64 or s390x is broken Platforms are 64bit (ppc64 and s390x) both ReadHat and SuSE need both __arch64__ manually set on the gcc compile line (or on the Configure line). We must set __arch64__ in order to meet the requirement to have a 64 bit entity for SHA_LONG64. 2. Building ripemd on ppc64 or s390x is broken Platforms are 64bit (ppc64 and s390x) both ReadHat and SuSE (both Big Endian 64 bit machines) and either -D__ILP64__ must be set or no-ripemd set on the Configure line or the ripemd tests fails with the last (longest) test value. The only way we are able to make a build with ripemd configured that passes all the tests, is by defining __ILP64__, which has the effectof changing SHA_LONG and all its cohorts that are mapped into HASH_LONG from 32 bit entities into a 64 bit entities 3. S390X is not linux-generic32 Seperate patches required for all 0.9.8 versions (as both Configure and config are different for prime, a, b, and c/d). 4. This also includes the #1457 ticket fix for the -b flag for powerpc64-linux This error affects only 64 bit targets, with gcc. Versions affected: 0.9.8[abcd] We have tested the attached patch on Linux (RHEL and SuSE) on ppc64, and s390x (both 64 bit). Note that this patch must be added manually as the Configure script is different in different versions of OpenSSL-0.9.7 and 0.9.8. New ppc64-gcc entry: "linux-ppc64", "gcc:-m64 -D__arch64__ -DNO_ASM -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-m64:.so. \$(SHLIB_MAJOR).\$(SHLIB_MINOR)", New s390x-gcc entry: "linux-s390x", "gcc:-m64 -D__arch64__ -DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG:::::::::::: dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", Since I am in the US, I have already submitted this code to the US Bureau of Industry and Security and the Encryption Request Coordinator. Thanks, Mike ---- Michael Kobar Senior Software Engineer Lymeware Corporation www.lymeware.com
config098d.patch
Description: Binary data
