i'm trying to build Net::SSLeay v1.13 with OpenSSL v0.9.6c on HP-UX B.11.00. first the compilation fails because the compiler doesn't understand long long type used in include/openssl/bn.h include file. after fixing this the compilation goes fine but linking fails with the following error message (full typescript attached):
... LD_RUN_PATH="/opt/local/openssl-noidea/0.9.6c-cc/lib" ld -o blib/arch/auto/Net/SSLeay/SSLeay.sl -b -L/usr/local/lib SSLeay.o -L/opt/local/openssl-noidea/0.9.6c-cc -L/opt/local/openssl-noidea/0.9.6c-cc/lib -lssl -lcrypto ld: DP relative code in file /opt/local/openssl-noidea/0.9.6c-cc/lib/libcrypto.a(pa-risc2.o) - shared library must be position independent. Use +z or +Z to recompile. *** Error exit code 1 Stop. can someone explain why the linker fails here? the OpenSSL object files were compiled with the '+Z' option and '+z' option was used when compiling SSLeay.o. -- aspa
Script started on Tue Feb 19 17:27:06 2002 > /opt/local/perl-5.005_03/bin/perl Makefile.PL /opt/local/openssl-noidea/0.9.6c -cc Checking for OpenSSL-0.9.6c or newer... You have OpenSSL-0.9.6c installed in /opt/local/openssl-noidea/0.9.6c-cc Writing Makefile for Net::SSLeay::Handle Writing Makefile for Net::SSLeay > make Manifying ../blib/man3/Net::SSLeay::Handle.3 cc -c -I/opt/local/openssl-noidea/0.9.6c-cc/include -D_HPUX_SOURCE -Aa -I/usr/local/include -O -DVERSION=\"1.13\" -DXS_VERSION=\"1.13\" +z -I/opt/local/perl-5.005_03/lib/5.00503/PA-RISC2.0/CORE SSLeay.c cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 235: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 272: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 336: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 354: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 354: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 355: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 355: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 356: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 357: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 358: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 359: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 360: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 371: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 456: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 456: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 456: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 456: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 457: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 457: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 457: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 457: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 458: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 458: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 459: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 459: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 459: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 459: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 460: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 460: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 460: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 460: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 461: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 461: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 461: error 1681: Must use +e or -Ae for long long in ANSI mode. cc: "/opt/local/openssl-noidea/0.9.6c-cc/include/openssl/bn.h", line 461: error 1681: Must use +e or -Ae for long long in ANSI mode. *** Error exit code 1 Stop. > grep CCFLAGS Makefile CCFLAGS = -D_HPUX_SOURCE -Aa -I/usr/local/include CCCMD = $(CC) -c $(INC) $(CCFLAGS) $(OPTIMIZE) \ > /opt/local/perl-5.005_03/bin/perl Makefile.PL /opt/local/openssl-noidea/0.9.6c -cc CCFLAGS='-D_HPUX_SOURCE -Ae -I/usr/local/include' Checking for OpenSSL-0.9.6c or newer... You have OpenSSL-0.9.6c installed in /opt/local/openssl-noidea/0.9.6c-cc Writing Makefile for Net::SSLeay::Handle Writing Makefile for Net::SSLeay > make Manifying ../blib/man3/Net::SSLeay::Handle.3 cc -c -I/opt/local/openssl-noidea/0.9.6c-cc/include -D_HPUX_SOURCE -Ae -I/usr/local/include -O -DVERSION=\"1.13\" -DXS_VERSION=\"1.13\" +z -I/opt/local/perl-5.005_03/lib/5.00503/PA-RISC2.0/CORE SSLeay.c Running Mkbootstrap for Net::SSLeay () chmod 644 SSLeay.bs LD_RUN_PATH="/opt/local/openssl-noidea/0.9.6c-cc/lib" ld -o blib/arch/auto/Net/SSLeay/SSLeay.sl -b -L/usr/local/lib SSLeay.o -L/opt/local/openssl-noidea/0.9.6c-cc -L/opt/local/openssl-noidea/0.9.6c-cc/lib -lssl -lcrypto ld: DP relative code in file /opt/local/openssl-noidea/0.9.6c-cc/lib/libcrypto.a(pa-risc2.o) - shared library must be position independent. Use +z or +Z to recompile. *** Error exit code 1 Stop. > exit exit script done on Tue Feb 19 17:28:39 2002