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