Jon, I have the same problem that you were mentioning in your thread. I built a batch file similar to yours and I'm getting the link error in the first pass. Were you able to find a solution for this?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Following are the link errors I'm getting: fips_premain.obj : error LNK2001: unresolved external symbol "unsigned char * FIPS_signature" (?FIPS_signature@@3PAEA) fips_premain.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl FIPS_incore_fingerprint(unsigned char *,unsigned int)" (?FIPS_incor e_fingerprint@@YAIPEAEI@Z) referenced in function "void __cdecl FINGERPRINT_premain(void)" (?FINGERPRINT_premain@@YAXXZ) fips_premain.obj : error LNK2019: unresolved external symbol "void const * __cdecl FIPS_text_start(void)" (?FIPS_text_start@@YAPEBXXZ) referenced in f unction "void __cdecl FINGERPRINT_premain(void)" (?FINGERPRINT_premain@ @YAXXZ) ------------------------------------------------------------------------------------------------------------------------------------------- Here is my log: D:\TestPrograms\TestFIPSOpenssl>cl /Od /I "D:\OpenSSL\deploy\Applications_win64_x64\include" /I "D:\Dev\WrkSpace_Main\depot\ExternalLibs\OpenSSL\1.0.1c-fips2.0.3\fips-src\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"x64\Debug\\" /Fd"x64\Debug\vc90.pdb" /W3 /nologo /c /Zi /TC /errorReport:prompt main.c main.c D:\TestPrograms\TestFIPSOpenssl>fips_build_script.bat D:\TestPrograms\TestFIPSOpenssl>SET FIPS_PATH=D:\OpenSSL\deploy\Applications_win64_x64 D:\TestPrograms\TestFIPSOpenssl>SET FIPS_LINK=link D:\TestPrograms\TestFIPSOpenssl>SET FIPS_CC=cl D:\TestPrograms\TestFIPSOpenssl>SET FIPS_CC_ARGS=/Fo D:\TestPrograms\TestFIPSOpenssl\x64\Debug\fips_premain.obj -ID:\Dev\WrkSpace_Ma in\depot\ExternalLibs\OpenSSL\1.0.1c-fips2.0.3\_deploy\Applications_win64_x64\include /MD /O1 -DOPENSSL_THREADS -DDSO_WIN32 -DOPENSSL_NO_ERR -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -ID:\Dev\WrkSpace_Main\depot\Ext ernalLibs\OpenSSL\1.0.1c-fips2.0.3\_deploy\Applications_win64_x64/include/GS -DOPENSSL_NO_IDEA -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC 2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_RIPEMD -DOPENSSL_NO_MDC2 -DOPENSSL_NO_BF -DOPENSSL_NO_CAST -DOPENSSL_NO_DH -DOPENSSL_NO_WHIRLPOOL -DO PENSSL_NO_SSL2 -DOPENSSL_NO_CMS -DOPENSSL_NO_ERR -DOPENSSL_NO_KRB5 -DOPENSSL_NO_GOST -DOPENSSL_NO_HW -DOPENSSL_FIPS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DY NAMIC_ENGINE /Zl /Z7 -c D:\TestPrograms\TestFIPSOpenssl>SET PREMAIN_DSO_EXE= D:\TestPrograms\TestFIPSOpenssl>SET FIPS_TARGET=D:\TestPrograms\TestFIPSOpenssl\x64\Debug\TestFIPSOpenssl.exe D:\TestPrograms\TestFIPSOpenssl>SET FIPS_SHA1_EXE=D:\OpenSSL\deploy\Applications_win64_x64\bin\fips_standalone_sha1.exe D:\TestPrograms\TestFIPSOpenssl>SET FIPSLIB_D=D:\OpenSSL\deploy\Applications_win64_x64\lib D:\TestPrograms\TestFIPSOpenssl>perl D:\OpenSSL\deploy\Applications_win64_x64\bin\fips link.pl/OUT:"D:\TestPrograms\TestFIPSOpenssl\x64\Debug\TestFIPSOpenssl.exe" /NOLOGO /LIBPATH:"D:\Dev\WrkSpace_Main\depot\ExternalLibs\OpenSS L\1.0.1c-fips2.0.3\_deploy\Applications_win64_x64\lib" /MANIFEST /MANIFESTFILE:\"x64\Debug\TestFIPSOpenssl.exe.intermediate.manifest\" /MANIFESTUAC:\" level='asInvoker' uiAccess='false'\" /DEBUG /PDB:\"D:\TestPrograms\TestFIPSOpenssl\x64\Debug\TestFIPSOpenssl.pdb\" /SUBSYSTEM:CONSOLE /DYNAMI CBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:PROMPT fipscanister.lib opensslcryptofips.lib opensslssl.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib x64\Debug\main.obj x64\Debug\fips_premain.obj Integrity check OK cl /Fo D:\TestPrograms\TestFIPSOpenssl\x64\Debug\fips_premain.obj -ID:\OpenSSL\deploy\ Applications_win64_x64\include /MD /O1 -DOPENSSL_THREADS -DDSO_WIN32 -DOPENSSL_NO_ERR -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_M EAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -ID:\OpenSSL\deploy\Applications _win64_x64/include/GS -DOPENSSL_NO_IDEA -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_RIPEMD -DOPENSSL_NO_MDC2 -DOPENSSL_NO_BF -DOPENSSL_NO_CAST -DOPENSSL_NO_DH -DOPENSSL_NO_WHIRLPOOL -DOPENSSL_NO_SSL2 -DOPENSSL_NO_CMS -DOPENSSL_NO_ERR -DOPEN SSL_NO_KRB5 -DOPENSSL_NO_GOST -DOPENSSL_NO_HW -DOPENSSL_FIPS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE /Zl /Z7 -c D:\Dev\WrkSpace_Main\depot \ExternalLibs\OpenSSL\1.0.1c-fips2.0.3\_deploy\Applications_win64_x64\lib/fips_premain.c cl : Command line warning D9027 : source file 'D:\TestPrograms\TestFIPSOpenssl\x64\Debug\fips_premain.obj' ignored fips_premain.c link /OUT:D:\TestPrograms\TestFIPSOpenssl\x64\Debug\TestFIPSOpenssl.exe /NOLOGO /LIBPATH:D:\Dev\WrkSpace_Main\depot\ExternalLibs\OpenSSL\1.0. 1c-fips2.0.3\_deploy\Applications_win64_x64\lib /MANIFEST /MANIFESTFILE:"x64\Debug\TestFIPSOpenssl.exe.intermediate.manifest" /MANIFESTUAC:"level='asI nvoker' uiAccess='false'" /DEBUG /PDB:"D:\TestPrograms\TestFIPSOpenssl\x64\Debug\TestFIPSOpenssl.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMP AT /MACHINE:X64 /ERRORREPORT:PROMPT fipscanister.lib opensslcryptofips.lib opensslssl.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib x64\Debug\main.obj x64\Debug\fips_premain.obj MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library fips_premain.obj : error LNK2001: unresolved external symbol "unsigned char * FIPS_signature" (?FIPS_signature@@3PAEA) fips_premain.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl FIPS_incore_fingerprint(unsigned char *,unsigned int)" (?FIPS_incor e_fingerprint@@YAIPEAEI@Z) referenced in function "void __cdecl FINGERPRINT_premain(void)" (?FINGERPRINT_premain@@YAXXZ) fips_premain.obj : error LNK2019: unresolved external symbol "void const * __cdecl FIPS_text_start(void)" (?FIPS_text_start@@YAPEBXXZ) referenced in f unction "void __cdecl FINGERPRINT_premain(void)" (?FINGERPRINT_premain@ @YAXXZ) D:\TestPrograms\TestFIPSOpenssl\x64\Debug\TestFIPSOpenssl.exe : fatal error LNK1120: 3 unresolved externals First stage Link failure at D:\OpenSSL\deploy\Applications_win64_x64\bin\ fipslink.pl line 55. Thanks! Regards, Raghav On Thu, Feb 7, 2013 at 2:26 PM, Dave Thompson <dthomp...@prinpay.com> wrote: > > From: owner-openssl-us...@openssl.org On Behalf Of Jeffrey Walton > > Sent: Wednesday, 06 February, 2013 16:59 > > To: openssl-users@openssl.org > > Subject: Re: fipslink > > > > On Wed, Feb 6, 2013 at 2:40 PM, Memmott, Lester > > <lester.memm...@landesk.com> wrote: > > > Jon, > > > > > > I'm having trouble with fipslink as well and thought it > > might help to compare notes. These are the linker errors I'm > > getting using Visual Studio 2008: > > > fips_premain.obj : error LNK2001: unresolved external > > symbol "unsigned char * FIPS_signature" (?FIPS_signature@@3PAEA) > > > fips_premain.obj : error LNK2001: unresolved external > > symbol "void const * __cdecl FIPS_text_start(void)" > > (?FIPS_text_start@@YAPBXXZ) > > > fips_premain.obj : error LNK2001: unresolved external > > symbol "unsigned int __cdecl FIPS_incore_fingerprint(unsigned > > char *,unsigned int)" (?FIPS_incore_fingerprint@@YAIPAEI@Z) > > > > > > What linker errors do you get? > > It looks like you are not compiling fips_premain.c (that's where those > > symbols are allocated storage). > > > I don't think so. In my copy they are *referenced* in fips_premain.c, > and allocated/defined in fips.c and fips_canister.c . > > Those error messages look like fips_premain.c was compiled as C++ > instead of C. Since by design C++ is a superset of "good" C this > doesn't cause errors. If OP is compiling in VisualStudio/VisualC++ > (not just linking) in my experience VisualStudio defaults to > "force C++" and you have to manually reconfigure to allow C. > > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager majord...@openssl.org >