[openssl-dev] OpenSSL 1.1-pre3 fails on Solaris
Erik Forsberg
erik at efca.com
Tue Feb 16 07:19:10 UTC 2016
Linking on Solaris is broken
configuration was basically identical to solaris64-x86_64-cc
but looks like a generic failure in Makefile.shared
the -z argument is malformed on Solaris platforms.
LD_LIBRARY_PATH=.: cc -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_THREADS -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_
MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
-DPOLY1305_ASM -DOPENSSLDIR="/usr/local/ssl" -DENGINESDIR="/usr/local/lib/amd64/engines" -KPIC -D_REENTRANT -m64 -xarch=generic -xstrconst -
Xa -DL_ENDIAN -DFILIO_H -xO5 -xdepend -xbuiltin -G -dy -z text -R/usr/local/lib/amd64 -h libcrypto.so.1.1 -Wl,-Bsymbolic -o ./libcrypto.so.1
.1 -z allextract,-M,crypto.map ./libcrypto.a -z defaultextract -L. -lsocket -lnsl -ldl -lpthread
ld: fatal: option '-z' has illegal argument 'allextract,-M,crypto.map'
*** Error code 2
The following command caused the error:
if (cc -Wl,-V /dev/null 2>&1 | grep '^GNU ld' )>/dev/null; then \
SHLIB_COMPAT=; SHLIB_SOVER=; if [ -n "1.1;" ]; then prev=""; for v in `echo "1.1 ;" | cut -d';' -f1`; do SHLIB_SOVER_NODOT=$v; SHLI
B_SOVER=.$v; if [ -n "$prev" ]; then SHLIB_COMPAT="$SHLIB_COMPAT .$prev"; fi; prev=$v; done; fi; SHLIB=libcrypto.so; SHLIB_SUFFIX=;
ALLSYMSFLAGS='-Wl,--whole-archive'; NOALLSYMSFLAGS='-Wl,--no-whole-archive'; SHAREDFLAGS="-DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_THREADS -D
OPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD
5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr
/local/lib/amd64/engines\"" -KPIC -D_REENTRANT -m64 -xarch=generic -xstrconst -Xa -DL_ENDIAN -DFILIO_H -xO5 -xdepend -xbuiltin -G -dy -z te
xt -R/usr/local/lib/amd64 -shared -Wl,-Bsymbolic -Wl,-soname=$SHLIB$SHLIB_SOVER$SHLIB_SUFFIX"; \
else \
SHLIB_COMPAT=; SHLIB_SOVER=; if [ -n "1.1;" ]; then prev=""; for v in `echo "1.1 ;" | cut -d';' -f1`; do SHLIB_SOVER_NODOT=$v; SHLI
B_SOVER=.$v; if [ -n "$prev" ]; then SHLIB_COMPAT="$SHLIB_COMPAT .$prev"; fi; prev=$v; done; fi; \
MINUSZ='-z '; \
(cc -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
SHLIB=libcrypto.so; \
SHLIB_SUFFIX=;\
if [ crypto != "crypto" -a crypto != "ssl" ]; then \
ALLSYMSFLAGS="${MINUSZ}allextract"; \
else \
/usr/local/bin/perl ./util/mkdef.pl crypto linux >crypto.map; \
ALLSYMSFLAGS="${MINUSZ}allextract,-M,crypto.map"; \
fi; \
NOALLSYMSFLAGS="${MINUSZ}defaultextract"; \
SHAREDFLAGS="-DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_THREADS -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
-DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOL
Y1305_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/amd64/engines\"" -KPIC -D_REENTRANT -m64 -xarch=generic -xstrcon
st -Xa -DL_ENDIAN -DFILIO_H -xO5 -xdepend -xbuiltin -G -dy -z text -R/usr/local/lib/amd64 -h $SHLIB$SHLIB_SOVER$SHLIB_SUFFIX -Wl,-Bsymbolic"
; \
fi; \
SHOBJECTS="./libcrypto.a "; ( :; LIBDEPS="${LIBDEPS:--L. -lsocket -lnsl -ldl -lpthread}"; SHAREDCMD="${SHAREDCMD:-cc}"; SHAREDFLAGS="$
{SHAREDFLAGS:--DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_THREADS -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -D
OPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY13
05_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/amd64/engines\"" -KPIC -D_REENTRANT -m64 -xarch=generic -xstrconst
-Xa -DL_ENDIAN -DFILIO_H -xO5 -xdepend -xbuiltin -G -dy -z text -R/usr/local/lib/amd64}"; LIBPATH=`for x in $LIBDEPS; do echo $x; done | se
d -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; echo LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${SHAREDCMD}
${SHAREDFLAGS} -o ./$SHLIB$SHLIB_SOVER$SHLIB_SUFFIX $ALLSYMSFLAGS $SHOBJECTS $NOALLSYMSFLAGS $LIBDEPS; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRA
RY_PATH ${SHAREDCMD} ${SHAREDFLAGS} -o ./$SHLIB$SHLIB_SOVER$SHLIB_SUFFIX $ALLSYMSFLAGS $SHOBJECTS $NOALLSYMSFLAGS $LIBDEPS ) && if [ -n
"$INHIBIT_SYMLINKS" ]; then :; else prev=$SHLIB$SHLIB_SOVER$SHLIB_SUFFIX; if [ -n "$SHLIB_COMPAT" ]; then for x in $SHLIB_COMPAT; do ( :
; rm -f ./$SHLIB$x$SHLIB_SUFFIX; ln -s $prev ./$SHLIB$x$SHLIB_SUFFIX ); prev=$SHLIB$x$SHLIB_SUFFIX; done; fi; if [ -n "$SHLIB_SOVER" ];
then ( :; rm -f ./$SHLIB$SHLIB_SUFFIX; ln -s $prev ./$SHLIB$SHLIB_SUFFIX ); fi; fi
make: Fatal error: Command failed for target `link_a.solaris'
Current working directory /export/home/src/openssl-1.1/x64
*** Error code 1
More information about the openssl-dev
mailing list