When building OpenSSL we do not succeed in building the NT debug dll without changing the OpenSSL build files. As can be seen in the dump below (see error) cl failes to create/open database file '<path>\openssl-1.0.0a\tmp32dll\lib.pdb' this is not strange since when we look in the '<path>\openssl-1.0.0a\' there is no folder called 'tmp32dll', but there is one called 'tmp32dll.dbg'.
Workaround:
We looked in the '.mak' file and noticed that '.dbg' was not appended to
'APP_CFLAG= /Zi /Fdtmp32dll/app' and 'LIB_CFLAG= /Zi /Fdtmp32dll/lib
-D_WINDLL', but it was appended to 'TMP_D=tmp32dll.dbg'. So to get it to
compile we opened the file 'mf1mk.pl' file and removed the append at line 230
and 231. This is ofcource a quick fix, but it worked, a more proper solution
would probobly be to append the '.dbg' to 'APP_CFLAG' and 'LIB_CFLAG' too.
To reproduce:
$ perl Configure "-DDEBUG VC-WIN32"
$ perl util\mkdef.pl crypto ssl update
$ ms\do_nasm.bat
$ perl util\mk1mf.pl debug no-asm VC-WIN32 >ms\ntdebug.mak
$ perl util\mk1mf.pl debug dll no-asm VC-WIN32 >ms\ntdebugdll.mak
$ nmake -f ms\ntdebugdll.mak
Error:
Copying: ms/applink.c to inc32/openssl/applink.c
cl /Fotmp32dll.dbg\uplink.obj -Iinc32 -Itmp32dll.dbg -DDEBUG /MTd /Od
-DDEBUG -D_DEBUG -DOPENSSL_THREADS -DDSO_WIN32 -DDEBUG -W3 -WX -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 -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM
-DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM -DOPENSSL_USE_APPLINK -I.
-DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE
-DOPENSSL_NO_STATIC_ENGINE /Zi /Fdtmp32dll/lib -D_WINDLL -c ms\uplink.c
uplink.c
ms\uplink.c : fatal error C1033: cannot open program database
'<path>\openssl-1.0.0a\tmp32dll\lib.pdb'
Press any key to continue . . .
Regards
//Samuel
| When building OpenSSL we do not succeed in building the NT debug dll without changing the OpenSSL build files. As can be seen in the dump below (see error) cl failes to create/open database file '<path>\openssl-1.0.0a\tmp32dll\lib.pdb' this is not strange since when we look in the '<path>\openssl-1.0.0a\' there is no folder called 'tmp32dll', but there is one called 'tmp32dll.dbg'. Workaround: We looked in the '.mak' file and noticed that '.dbg' was not appended to 'APP_CFLAG= /Zi /Fdtmp32dll/app' and 'LIB_CFLAG= /Zi /Fdtmp32dll/lib -D_WINDLL', but it was appended to 'TMP_D=tmp32dll.dbg'. So to get it to compile we opened the file 'mf1mk.pl' file and removed the append at line 230 and 231. This is ofcource a quick fix, but it worked, a more proper solution would probobly be to append the '.dbg' to 'APP_CFLAG' and 'LIB_CFLAG' too. To reproduce: $ perl Configure "-DDEBUG VC-WIN32" $ perl util\mkdef.pl crypto ssl update $ ms\do_nasm.bat $ perl util\mk1mf.pl debug no-asm VC-WIN32 >ms\ntdebug.mak $ perl util\mk1mf.pl debug dll no-asm VC-WIN32 >ms\ntdebugdll.mak $ nmake -f ms\ntdebugdll.mak Error: Copying: ms/applink.c to inc32/openssl/applink.c cl /Fotmp32dll.dbg\uplink.obj -Iinc32 -Itmp32dll.dbg -DDEBUG /MTd /Od -DDEBUG -D_DEBUG -DOPENSSL_THREADS -DDSO_WIN32 -DDEBUG -W3 -WX -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 -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM -DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE /Zi /Fdtmp32dll/lib -D_WINDLL -c ms\uplink.c uplink.c ms\uplink.c : fatal error C1033: cannot open program database '<path>\openssl-1.0.0a\tmp32dll\lib.pdb' Press any key to continue . . . Regards //Samuel |
