Type: Bug
Version: 0.9.8b, 0.9.8d (0.9.8c not tested)
Operating System: AIX 4.3.3 ML11
Compiler: IBM VAC 5.0.2.9
Hardware: Bull Escala T104, PowerPC 604e, 32bit

Description:
When I try to compile the package with zlib and statical linking, I get a 
compile error. The file zlib.h cannot be found, even tough I explicitly 
specified the location.

I built with:
./config --prefix=/usr/local --openssldir=/usr/local/share/ssl \
        zlib no-shared \
        --with-zlib-lib=/usr/local/lib \
        --with-zlib-include=/usr/local/include

and then:
make

The error message is:
...
making all in crypto/comp...
        cc -I.. -I../.. -I../../include -DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN -DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384 -c comp_lib.c
        cc -I.. -I../.. -I../../include -DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN -DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384 -c comp_err.c
        cc -I.. -I../.. -I../../include -DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN -DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384 -c c_rle.c
        cc -I.. -I../.. -I../../include -DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN -DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384 -c c_zlib.c
"c_zlib.c", line 25.10: 1506-296 (S) #include file <zlib.h> not found.
"c_zlib.c", line 112.9: 1506-046 (S) Syntax error.
"c_zlib.c", line 114.9: 1506-278 (S) The structure definition must specify a 
member list.
"c_zlib.c", line 136.33: 1506-045 (S) Undeclared identifier Z_NULL.
"c_zlib.c", line 144.37: 1506-045 (S) Undeclared identifier z_stream.
"c_zlib.c", line 144.17: 1506-045 (S) Undeclared identifier ZLIB_VERSION.
"c_zlib.c", line 145.20: 1506-045 (S) Undeclared identifier Z_OK.
"c_zlib.c", line 155.44: 1506-045 (S) Undeclared identifier 
Z_DEFAULT_COMPRESSION.
"c_zlib.c", line 187.19: 1506-045 (S) Undeclared identifier Z_OK.
"c_zlib.c", line 200.48: 1506-045 (S) Undeclared identifier Z_SYNC_FLUSH.
"c_zlib.c", line 214.19: 1506-045 (S) Undeclared identifier Z_OK.
"c_zlib.c", line 228.48: 1506-045 (S) Undeclared identifier Z_SYNC_FLUSH.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
...

It seems to me that the Configure script doesn't generate correct Makefiles, 
because there's no "-I/usr/local/include" in the compiler invocation.

Normally, there should be a "-I/usr/local/include" in the line "INCLUDES=" in 
crypto/comp/Makefile, if I specify the zlib include dir, but it isn't. 
Furthermore, if I add "-I/usr/local/include" to the line "INCLUDES=" in 
crypto/comp/Makefile, it isn't used. I had to add it to crypto/Makefile to be 
honored.

Now, with the line
INCLUDES=       -I.. -I../.. -I../../include -I/usr/local/include
in crypto/Makefile, the compile run gives the next error. The zlib library file 
(libz.a) cannot be found.

The error message is:
...
making all in apps...
        cc -DMONOLITH -I.. -I../include  -DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN -DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384 -c verify.c
...
        cc -DMONOLITH -I.. -I../include  -DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN -DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384 -c openssl.c
        rm -f openssl
        shlib_target=; if [ -n "" ]; then  shlib_target="aix-shared";  fi;  if 
[ "${shlib_target}" = "darwin-shared" ] ; then  LIBRARIES="../libssl.a  
../libcrypto.a" ;  else  LIBRARIES="-L.. -lssl  -L.. -lcrypto" ;  fi;  make -f 
../Makefile.shared -e  APPNAME=openssl OBJECTS="openssl.o verify.o asn1pars.o 
req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o  ca.o pkcs7.o 
crl2p7.o crl.o  rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o  x509.o genrsa.o 
gendsa.o s_server.o s_client.o speed.o  s_time.o apps.o s_cb.o s_socket.o 
app_rand.o version.o sess_id.o  ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o 
smime.o rand.o engine.o  ocsp.o prime.o"  LIBDEPS=" $LIBRARIES -lz"  
link_app.${shlib_target}
        ( :;    LIBDEPS="${LIBDEPS:--L.. -lssl  -L.. -lcrypto -lz}";  
LDCMD="${LDCMD:-cc}"; LDFLAGS="${LDFLAGS:--DZLIB -DOPENSSL_THREADS -qthreaded 
-DDSO_DLFCN
-DHAVE_DLFCN_H -q32 -O -DB_ENDIAN -qmaxmem=16384}";  LIBPATH=`for x in $LIBDEPS;
 do if echo $x | grep '^ *-L' > /dev/null 2>&1; then echo $x | sed -e 's/^ *-L//
'; fi; done | uniq`;  LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`;  
LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH  ${LDCMD} ${LDFLAGS} -o 
${APPNAME:=openssl} openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o 
enc.o passwd.o gendh.o errstr.o  ca.o pkcs7.o crl2p7.o crl.o  rsa.o rsautl.o 
dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o s_server.o s_client.o 
speed.o  s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_id.o  
ciphers.o nseq.o pkcs12.o pkcs8.o spkac.o smime.o rand.o engine.o  ocsp.o 
prime.o ${LIBDEPS} )
ld: 0706-006 Cannot find or open library file: -l z
        ld:open(): A file or directory in the path name does not exist.
make: 1254-004 The error code from the last command is 255.


Stop.
make: 1254-004 The error code from the last command is 2.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
...

So, again, my explicitly specified "--with-zlib-lib=/usr/local/lib" was not 
honored. To work around the error, I specified an addidional "-L/usr/local/lib" 
to config.

The files in attach.tar.gz provide further information. They are:
First compile run: All files ending with .1
config_log.openssl.1
make_log.openssl.1
Makefile.1
crypto_Makefile.1 (crypto/Makefile)
crypto_comp_Makefile.1 (crypto/comp/Makefile)

Second compile run with modified crypto/Makefile: All files ending with .2
config_log.openssl.2
make_log.openssl.2
Makefile.2
crypto_Makefile.2 (crypto/Makefile)
crypto_comp_Makefile.2 (crypto/comp/Makefile)

Regards,

Olaf Morgenstern

Attachment: attach.tar.gz
Description: application/gzip

Reply via email to