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                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to