Type of Request: Bug Report
Operating System: AIX 5.2
OpenSSL Version: openssl-0.9.8a
Problem (Bug): While in the "openssl-0.9.8a" directory, I typed the
"./configure" command which was successful. Then I typed the "make"
command and that's when the GCC compiler got hung and it never finished
the compilation. There was even no compile errors of any sort. Then I
noticed the problem on the compiler's output to the screen.
--snip-
making all in crypto/cast...
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c c_skey.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c c_ecb.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c c_enc.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c c_cfb64.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c c_ofb64.c
ar r ../../libcrypto.a c_skey.o c_ecb.o c_enc.o c_cfb64.o
c_ofb64.o
/usr/bin/ranlib ../../libcrypto.a || echo Never mind.
Target "all" is up to date.
making all in crypto/bn...
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_add.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_div.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_exp.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_lib.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_ctx.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_mul.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_mod.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_print.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_rand.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_shift.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_word.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_blind.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_kron.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_sqrt.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_gcd.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_prime.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_err.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c bn_sqr.c
gcc -I.. -I../.. -I../../include -DOPENSSL_THREADS
-D_THREAD_SAFE -DDSO_DLFCN -DHAVE_DLFCN_H -O -DB_ENDIAN -c -o
aix_ppc32.o aix_ppc32.s
--snip-
What I noticed is the "-c -o aix_ppc32.o aix_ppc32.s" at the very bottom
right when the compiler hung. I waited 30 minutes and the compiler
never recovered from it so I had to kill it with the "Control C" keys.
The reason the compiler hung is because there's no specified filename
between the "-c" and the "-o" output.
With some troubleshooting, I came upon this Makefile in the
"..../openssl-0.9.8a/crypto/bn" directory. With the VI editor when
searching through the script in the Makefile, I found the offending code
that cause the filename not to be output with the gcc compiler's flag
option.
--snip-
BN_ASM= bn_asm.o #Line 14
# or use #Line 15
#BN_ASM= bn86-elf.o #Line 16
LIBOBJ= bn_add.o bn_div.o bn_exp.o bn_lib.o bn_ctx.o bn_mul.o bn_mod.o \
#Line 33
bn_print.o bn_rand.o bn_shift.o bn_word.o bn_blind.o \
#Line 34
bn_kron.o bn_sqrt.o bn_gcd.o bn_prime.o bn_err.o bn_sqr.o
$(BN_ASM) \ #Line 35
bn_recp.o bn_mont.o bn_mpi.o bn_exp2.o bn_gf2m.o bn_nist.o \
#Line 36
bn_depr.o bn_const.o
#Line 37
--snip-
The offending code is that "$(BN_ASM)" isn't being outputted. Line 14
and Line 16 that use the variable, BN_ASM contain only one used variable
anywhere in the script which is Line 35. So, I took out the "$(BN_ASM)"
on Line 35 and replace it with "bn_asm.o" and saved it.
I then redo the configure and make command. There, the compiler was
able to finish compiling the OpenSSL software without any difficulties.
Solution (Bugs): Fix that offending bug to somehow make it work for AIX
by whatever means. I'm not sure why the "bn86-elf.o" is there but the
bn86-elf.c file does not exist in that directory, so why do we need it?
Thanks,
Scott
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]