microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[openssl] Build error on x64-windows

Advik-B opened this issue · comments

commented

Copy issue body from P:/Github/Discord_Bot/deps/vcpkg/installed/vcpkg/issue_body.md

Package: openssl:x64-windows@3.3.0#1

Host Environment

  • Host: x64-windows
  • Compiler: MSVC 19.39.33523.0
  • vcpkg-tool version: 2024-04-23-d6945642ee5c3076addd1a42c331bbf4cfc97457
    vcpkg-scripts version: f4456c1 2024-05-13 (12 hours ago)

To Reproduce

vcpkg install dpp

Failure logs

-- Using cached openssl-openssl-openssl-3.3.0.tar.gz.
-- Cleaning sources at P:/Github/Discord_Bot/deps/vcpkg/buildtrees/openssl/src/nssl-3.3.0-961d78b8a1.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source P:/Github/Discord_Bot/deps/vcpkg/downloads/openssl-openssl-openssl-3.3.0.tar.gz
-- Applying patch cmake-config.patch
-- Applying patch command-line-length.patch
-- Applying patch script-prefix.patch
-- Applying patch windows/install-layout.patch
-- Applying patch windows/install-pdbs.patch
-- Applying patch unix/android-cc.patch
-- Applying patch unix/move-openssldir.patch
-- Applying patch unix/no-empty-dirs.patch
-- Applying patch unix/no-static-libs-for-shared.patch
-- Using source at P:/Github/Discord_Bot/deps/vcpkg/buildtrees/openssl/src/nssl-3.3.0-961d78b8a1.clean
-- Found external ninja('1.11.0').
-- Getting CMake variables for x64-windows
-- Getting CMake variables for x64-windows
-- Prerunning x64-windows-dbg
-- Building x64-windows-dbg
-- Restarting build without parallelism
CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: "D:/Programs/Visual Studio/VC/Tools/MSVC/14.39.33519/bin/Hostx64/x64/nmake.exe" /NOLOGO /G /U /F makefile install_dev install_modules INSTALL_PDBS=ON
    Working Directory: P:/Github/Discord_Bot/deps/vcpkg/buildtrees/openssl/x64-windows-dbg
    See logs for more information:
      P:\Github\Discord_Bot\deps\vcpkg\buildtrees\openssl\install-x64-windows-dbg-nmake-out.log
      P:\Github\Discord_Bot\deps\vcpkg\buildtrees\openssl\install-x64-windows-dbg-nmake-err.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_build_nmake.cmake:156 (vcpkg_execute_build_process)
  ports/openssl/windows/portfile.cmake:74 (vcpkg_build_nmake)
  ports/openssl/portfile.cmake:68 (include)
  scripts/ports.cmake:175 (include)
P:\Github\Discord_Bot\deps\vcpkg\buildtrees\openssl\install-x64-windows-dbg-nmake-err.log
cl : Command line warning D9025 : overriding '/Zi' with '/Z7'
NMAKE : fatal error U1077: '"D:\Programs\Visual Studio\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\cl.exe"  /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MDd -nologo -DWIN32 -D_WINDOWS -W3 -utf-8 -MP  -D_DEBUG -MDd -Z7 -Ob0 -Od -RTC1 -I"crypto" -I"." -I"include" -I"providers\common\include" -I"providers\implementations\include" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSLDIR=\"P:\\Github\\Discord_Bot\\deps\\vcpkg\\packages\\openssl_x64-windows\\debug\"" -D"ENGINESDIR=\"P:\\Github\\Discord_Bot\\deps\\vcpkg\\packages\\openssl_x64-windows\\debug\\lib\\engines-3\"" -D"MODULESDIR=\"P:\\Github\\Discord_Bot\\deps\\vcpkg\\packages\\openssl_x64-windows\\debug\\bin\"" -D"OPENSSL_BUILDING_OPENSSL" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG"   -DAES_ASM -DBSAES_ASM -DCMLL_ASM -DECP_NISTZ256_ASM -DGHASH_ASM -DKECCAK1600_ASM -DMD5_ASM -DOPENSSL_BN_ASM_GF2m -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_USE_APPLINK -DPADLOCK_ASM -DPOLY1305_ASM -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DX25519_ASM -c /Focrypto\libcrypto-shlib-cversion.obj "crypto\cversion.c"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"D:\Programs\Visual Studio\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\nmake.exe" /LU
        _build_libs' : return code '0x2'
Stop.
P:\Github\Discord_Bot\deps\vcpkg\buildtrees\openssl\install-x64-windows-dbg-nmake-out.log
    "D:\Programs\Visual Studio\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\nmake.exe" /LU                 depend
    "D:\Programs\Visual Studio\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\nmake.exe" /LU                 _build_libs
    "D:\Programs\Visual Studio\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\cl.exe"  /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MDd -nologo -DWIN32 -D_WINDOWS -W3 -utf-8 -MP  -D_DEBUG -MDd -Z7 -Ob0 -Od -RTC1 -I"crypto" -I"." -I"include" -I"providers\common\include" -I"providers\implementations\include" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSLDIR=\"P:\\Github\\Discord_Bot\\deps\\vcpkg\\packages\\openssl_x64-windows\\debug\"" -D"ENGINESDIR=\"P:\\Github\\Discord_Bot\\deps\\vcpkg\\packages\\openssl_x64-windows\\debug\\lib\\engines-3\"" -D"MODULESDIR=\"P:\\Github\\Discord_Bot\\deps\\vcpkg\\packages\\openssl_x64-windows\\debug\\bin\"" -D"OPENSSL_BUILDING_OPENSSL" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"DEBUG" -D"_DEBUG"   -DAES_ASM -DBSAES_ASM -DCMLL_ASM -DECP_NISTZ256_ASM -DGHASH_ASM -DKECCAK1600_ASM -DMD5_ASM -DOPENSSL_BN_ASM_GF2m -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_USE_APPLINK -DPADLOCK_ASM -DPOLY1305_ASM -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DX25519_ASM -c /Focrypto\libcrypto-shlib-cversion.obj "crypto\cversion.c"
cversion.c
crypto\cversion.c(60): warning C4129: 'V': unrecognized character escape sequence
crypto\cversion.c(60): warning C4129: 'T': unrecognized character escape sequence
crypto\cversion.c(60): warning C4129: 'M': unrecognized character escape sequence
crypto\cversion.c(60): warning C4129: 'H': unrecognized character escape sequence
crypto\cversion.c(60): warning C4129: 'c': unrecognized character escape sequence
crypto\cversion.c(60): error C2143: syntax error: missing ';' before 'constant'
crypto\cversion.c(60): error C2143: syntax error: missing ';' before 'string'

Same issue

This is the first commit that has this issue (discovered via git bisect)
e2f6384

See also
openssl/openssl@openssl-3.2.0...openssl-3.1.4

@dg0yt

We can further bisect inside openssl if that'd be helpful. what do you think @dg0yt ?

P.S. #37716 didn't fix that for me

Thank for working on this, I really can't do much more for a toolchain I don't use but which passes CI.

We can further bisect inside openssl if that'd be helpful. what do you think @dg0yt ?

P.S. #37716 didn't fix that for me

Given the changes in e2f6384, it is not clear whether the problem is from port changes or openssl changes.
The immediate quick fix is probably to pass the particular tool as pure file name, and to add its location to PATH, so that backslashes and spaces are taken out of the multi-interpreter control flow.
But any addition to PATH is a potential source for a new class of problems. I would prefer a fix which to the actual spot which breaks parsing the tool filepath.