I am unable to build fips-capable openssl-1.0.1h using VS 2008 (+ 2003 SDK)
on XP SP3 (Our product - which links to libcurl+openssl dlls - is still used on some XP and Server 2003 platforms.) The build phase fails at what appears to be the beginning of linking, but, I haven't been able to decipher what the problem is (I tried setting /verbose for link, but after perusal of the relevant linking-related Microsoft webpages, couldn't figure out what it was trying to tell me.) I need advice {the}{sooner,better}. The openssl-fips-2.0.5 (ms\do_fips no-asm) builds successfully and installs to C:\usr\local\ssl\fips-2.0. However, openssl-1.0.1h fails to build as the following excerpts may explain. The "shared" issue is, of course, suspect, but, the Configure output indicates it's handled. Note: The excerpts are cut and pasted from output files generated by a shell script that simply executes that commands and redirects output to appropriately-named files while adding some start and end information like the time. 1. CONFIGURE OUTPUT ---------------------------------------------- 14:04:43.96 CfgCmdline: perl Configure VC-WIN32 fips --with-fipslibdir=C:/E2E/WDC-3.0.1/wdc_file_xfer/openssl-fips-2.0.5/out32dll shared no-zlib Configuring for VC-WIN32 no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir) no-gmp [default] OPENSSL_NO_GMP (skip dir) no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir) no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5 no-md2 [default] OPENSSL_NO_MD2 (skip dir) no-rc5 [default] OPENSSL_NO_RC5 (skip dir) no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir) no-rsax [forced] OPENSSL_NO_RSAX (skip dir) no-sctp [default] OPENSSL_NO_SCTP (skip dir) no-store [experimental] OPENSSL_NO_STORE (skip dir) no-zlib [option] no-zlib-dynamic [default] IsMK1MF=1 CC =cl CFLAG =-DOPENSSL_THREADS -DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I$(FIPSDIR)/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM EX_LIBS = CPUID_OBJ =x86cpuid.o BN_ASM =bn-586.o co-586.o x86-mont.o x86-gf2m.o DES_ENC =des-586.o crypt586.o AES_ENC =aes-586.o vpaes-x86.o aesni-x86.o BF_ENC =bf-586.o CAST_ENC =c_enc.o RC4_ENC =rc4-586.o RC5_ENC =rc5-586.o MD5_OBJ_ASM =md5-586.o SHA1_OBJ_ASM =sha1-586.o sha256-586.o sha512-586.o RMD160_OBJ_ASM=rmd-586.o CMLL_ENC =cmll-x86.o MODES_OBJ =ghash-x86.o ENGINES_OBJ = PROCESSOR = RANLIB =true ARFLAGS = PERL =perl THIRTY_TWO_BIT mode BN_LLONG mode RC4_INDEX mode RC4_CHUNK is undefined Configured for VC-WIN32. You gave the option 'shared'. Normally, that would give you shared libraries. Unfortunately, the OpenSSL configuration doesn't include shared library support for this platform yet, so it will pretend you gave the option 'no-shared'. If you can inform the developpers (openssl-dev\@openssl.org) how to support shared libraries on this platform, they will at least look at it and try their best (but please first make sure you have tried with a current version of OpenSSL). 14:04:44.10 2. ASSEMBLE OUTPUT ----------------------------------------------- 16:03:13.18 start /b /wait cmd /c C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h\ms\do_nasm 16:03:13.25 C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h ==>perl util\mkfiles.pl 1>MINFO 16:03:13.34 C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h ==>perl util\mk1mf.pl nasm VC-WIN32 1>ms\nt.mak 16:03:14.18 C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h ==>perl util\mk1mf.pl dll nasm VC-WIN32 1>ms\ntdll.mak 16:03:14.96 C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h ==>perl util\mk1mf.pl nasm BC-NT 1>ms\bcb.mak 16:03:15.73 C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h ==>perl util\mkdef.pl 32 libeay 1>ms\libeay32.def 16:03:17.01 C:\E2E\WDC-3.0.1\wdc_file_xfer\openssl-1.0.1h ==>perl util\mkdef.pl 32 ssleay 1>ms\ssleay32.def 16:03:18.18 3. MAKE OUTPUT --------------------------------------------------- 16:03:25.14 TitleSuffix: PSDKforSvr2003R2 /XP32 /RETAIL MakeCmdline: nmake /f ms\nt.mak Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. Building OpenSSL perl util/copy.pl ".\.\e_os.h" "tmp32\e_os.h" Copying: ././e_os.h to tmp32/e_os.h ... [TEXT REMOVED] ... cl /Fotmp32\openssl.obj -DMONOLITH -Iinc32 -Itmp32 /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I\usr\local\ssl\fips-2.0/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_FIPS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE /Zi /Fdtmp32/app -c .\apps\openssl.c openssl.c SET FIPS_LINK=link SET FIPS_CC=cl SET FIPS_CC_ARGS=/Fotmp32\fips_premain.obj -Iinc32 -Itmp32 /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I\usr\local\ssl\fips-2.0/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_FIPS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE /Zl /Zi /Fdtmp32/lib -c SET PREMAIN_DSO_EXE= SET FIPS_TARGET=out32\openssl.exe SET FIPS_SHA1_EXE=\usr\local\ssl\fips-2.0\bin\fips_standalone_sha1.exe SET FIPSLIB_D=\usr\local\ssl\fips-2.0\lib perl \usr\local\ssl\fips-2.0\bin\fipslink.pl /nologo /subsystem:console /opt:ref /debug /fixed /map /out:out32\openssl.exe @"C:\DOCUME~1\wellingc\Local Settings\Temp\nm286.tmp" Integrity check OK cl /Fotmp32\fips_premain.obj -Iinc32 -Itmp32 /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS -DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -I\usr\local\ssl\fips-2.0/include -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_FIPS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE /Zl /Zi /Fdtmp32/lib -c \usr\local\ssl\fips-2.0\lib/fips_premain.c link /nologo /subsystem:console /opt:ref /debug /fixed /map /out:out32\openssl.exe @C:\DOCUME~1\wellingc\Local Settings\Temp\nm286.tmp First stage Link failure at \usr\local\ssl\fips-2.0\bin\fipslink.pl line 55______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org