Hello,
I am trying to compile OpenSSL 1.0.2d with FIPS support on various Linux and Unix platforms. I am building "openssl-fips-ecp-2.0.16" prior to building OpenSSL.
I have successfully compiled the same version of OpenSSL with FIPS support in linux-x86_64, aix64-cc, solaris64-x86_64-cc architectures. The build is failing for "solaris64-sparcv9-cc" architecture.
See details below:
- ./Configure solaris64-sparcv9-cc fips shared no-ec2m --with-fipsdir=/openssl-fips-ecp-2.0.16-build --prefix=/openssl-1.0.2d-build -> Okay
- make depend -> Okay
- make -> Fail
/usr/ccs/bin/ranlib ../../libcrypto.a || echo Never mind.
if [ -n "libcrypto.so.1.0.0 libssl.so.1.0.0" ]; then \
(cd ..; make libcrypto.so.1.0.0); \
fi
[ -z "libcrypto" ] || cc -KPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I/openssl-fips-ecp-2.0.16-build/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DGHASH_ASM -Iinclude \
-DFINGERPRINT_PREMAIN_DSO_LOAD -o fips_premain_dso \
/openssl-fips-ecp-2.0.16-build/lib/fips_premain.c /openssl-fips-ecp-2.0.16-build/lib/fipscanister.o \
libcrypto.a -lsocket -lnsl -ldl
ld: fatal: symbol `_sparcv9_vis1_instrument_bus2' is multiply-defined:
(file /openssl-fips-ecp-2.0.16-build/lib/fipscanister.o type=FUNC; file libcrypto.a(sparccpuid.o) type=FUNC);
ld: fatal: symbol `_sparcv9_vis1_instrument_bus' is multiply-defined:
(file /openssl-fips-ecp-2.0.16-build/lib/fipscanister.o type=FUNC; file libcrypto.a(sparccpuid.o) type=FUNC);
ld: fatal: File processing errors. No output written to fips_premain_dso
*** Error code 1
make: Fatal error: Command failed for target `fips_premain_dso'
Current working directory /openssl-1.0.2d
*** Error code 1
make: Fatal error: Command failed for target `shared'
Current working directory /openssl-1.0.2d/crypto
*** Error code 1
The following command caused the error:
dir=crypto; target=all; if expr " crypto ssl engines apps test tools " : ".* $dir " >/dev/null 2>&1; then if [ -d "$dir" ]; then ( cd $dir && echo "making $target in $dir..." && TOP= && unset TOP ${LIB+LIB} ${LIBS+LIBS} ${INCLUDE+INCLUDE} ${INCLUDES+INCLUDES} ${DIR+DIR} ${DIRS+DIRS} ${SRC+SRC} ${LIBSRC+LIBSRC} ${LIBOBJ+LIBOBJ} ${ALL+ALL} ${EXHEADER+EXHEADER} ${HEADER+HEADER} ${GENERAL+GENERAL} ${CFLAGS+CFLAGS} ${ASFLAGS+ASFLAGS} ${AFLAGS+AFLAGS} ${LDCMD+LDCMD} ${LDFLAGS+LDFLAGS} ${SCRIPTS+SCRIPTS} ${SHAREDCMD+SHAREDCMD} ${SHAREDFLAGS+SHAREDFLAGS} ${SHARED_LIB+SHARED_LIB} ${LIBEXTRAS+LIBEXTRAS} && make -e PLATFORM='solaris64-sparcv9-cc' PROCESSOR='' CC='cc' CFLAG='-KPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I/openssl-fips-ecp-2.0.16-build/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DGHASH_ASM' AS='cc' ASFLAG='-KPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I/openssl-fips-ecp-2.0.16-build/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DGHASH_ASM -c' AR='ar r' NM='nm' RANLIB='/usr/ccs/bin/ranlib' CROSS_COMPILE='' PERL='/usr/bin/perl' ENGDIRS='ccgost' SDIRS='objects md4 md5 sha mdc2 hmac ripemd whrlpool des aes rc2 rc4 idea bf cast camellia seed modes bn ec rsa dsa ecdsa dh ecdh dso engine buffer bio stack lhash rand err evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 cms pqueue ts srp cmac' LIBRPATH='/openssl-1.0.2d-build/lib' INSTALL_PREFIX='' INSTALLTOP='/openssl-1.0.2d-build' OPENSSLDIR='/openssl-1.0.2d-build/ssl' LIBDIR='lib' MAKEDEPEND='$${TOP}/util/domd $${TOP} -MD makedepend' DEPFLAG='-DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_EC2M -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_RSAX -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST' MAKEDEPPROG='makedepend' SHARED_LDFLAGS='-xarch=v9 -G -dy -z text' KRB5_INCLUDES='' LIBKRB5='' ZLIB_INCLUDE='' LIBZLIB='' EXE_EXT='' SHARED_LIBS='libcrypto.so.1.0.0 libssl.so.1.0.0' SHLIB_EXT='.so.1.0.0' SHLIB_TARGET='solaris-shared' PEX_LIBS='' EX_LIBS='-lsocket -lnsl -ldl' CPUID_OBJ='sparcv9cap.o sparccpuid.o' BN_ASM='bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o' EC_ASM='' DES_ENC='des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o' AES_ENC='aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o' CMLL_ENC='camellia.o cmll_misc.o cmll_cbc.o cmllt4-sparcv9.o' BF_ENC='bf_enc.o' CAST_ENC='c_enc.o' RC4_ENC='rc4_enc.o rc4_skey.o' RC5_ENC='rc5_enc.o' SHA1_ASM_OBJ='sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o' MD5_ASM_OBJ='md5-sparcv9.o' RMD160_ASM_OBJ='' WP_ASM_OBJ='wp_block.o' MODES_ASM_OBJ='ghash-sparcv9.o' ENGINES_ASM_OBJ='' PERLASM_SCHEME='void' FIPSLIBDIR='/openssl-fips-ecp-2.0.16-build/lib/' FIPSDIR='/openssl-fips-ecp-2.0.16-build' FIPSCANLIB="${FIPSCANLIB:-libcrypto}" THIS=${THIS:-build_crypto} MAKEFILE=Makefile MAKEOVERRIDES= TOP=.. DIR=$dir $target ) || exit 1; fi; fi
make: Fatal error: Command failed for target `build_crypto'
Can anyone please help me with a solution?
Machine Architecture details:
bash-3.00# uname -a
SunOS uspriu04 5.10 Generic sun4u sparc SUNW,Sun-Blade-100
Regards,
Shiva