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
>

Reply via email to