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
attach.tar.gz
Description: application/gzip
