[openssl-users] Linking FIPS 2.0.12 and OpenSSL 1.0.2f - "multiple definition of `bn_div_3_words"

Dr. Stephen Henson steve at openssl.org
Mon Oct 10 12:24:06 UTC 2016


On Fri, Oct 07, 2016, Craig_Weeks at trendmicro.com wrote:

> I am trying to build a library of FIPS 2.0.12 and OpenSSL 1.0.2f for MIPS architecture on vxWorks.  I am getting this error during the link step:
> 
> ../libcrypto.a(bn-mips.o)(.text+0x700): In function `bn_div_3_words':
> : multiple definition of `bn_div_3_words'
> /usr/local/src/w/branches/zorro/tos390_tls/vendor/openssl-fips-2.0.12_installation/lib//fipscanister.o(.text+0x321c0): first defined here
> 
> I see that others have encountered this problem in the past, but I have found no explanation or resolution.
> 

The FIPS module uses some source from regular OpenSSL. In order to avoid
duplicate symbol errors (like the one above) the ones in the FIPS module are
renames to FIPS_symbol or fips_symbol.

Unfortunately some of these haven't been renamed on some of the less commonly
used platforms. The result is the error you see above.

We can't just change the symbol name in the FIPS module as that would require
a change letter and approval. What you can however do is rename the symbol in
regular OpenSSL. The way you do this is to change occurrences of
bn_div_3_words to ossl_bn-div_3_words and the recompile regular
OpenSSL with this change: without the "fips" option. The reason for this is
that you want to ensure you have renamed all the symbols in regular OpenSSL:
if you missed any you'll get a linker error.

Then you compile a FIPS capable OpenSSL and you shouldn't get a link error any
more.

Steve.
--
Dr Stephen N. Henson. OpenSSL project core developer.
Commercial tech support now available see: http://www.openssl.org


More information about the openssl-users mailing list