facebook / facebook/hermes

Error while building static_h for Windows

Open
#1,627 7 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
JavaScript
Stars
11.3k
Forks
859
Avg merge
1h 30m
Merged PRs (30d)
3

Description

## Bug Description
I try to build a Windows version using the following commands:

1. cmake -S hermes -B build_release -G "Visual Studio 17 2022" -T ClangCL -A x64 -DCMAKE_BUILD_TYPE=Release
2. cmake --build ./build_release

The first step runs without any error.
The second step returns the following error:
```
C:\Users\louis\projecten\hermes\hermes\external\boost\boost_1_86_0\libs\context\src\asm\make_x86_64_ms_pe_masm.asm(90): error A2008: syntax error :
FRAME [C:\Users\louis\projecten\hermes\build_release\external\boost\boost_1_86_0\libs\context\boost_context_obj.vcxproj]
C:\Users\louis\projecten\hermes\hermes\external\boost\boost_1_86_0\libs\context\src\asm\make_x86_64_ms_pe_masm.asm(92): warning A4020: directive ig
nored outside a procedure [C:\Users\louis\projecten\hermes\build_release\external\boost\boost_1_86_0\libs\context\boost_context_obj.vcxproj]
C:\Users\louis\projecten\hermes\hermes\external\boost\boost_1_86_0\libs\context\src\asm\make_x86_64_ms_pe_masm.asm(162): fatal error A1010: unmatch
ed block nesting : hoost_make_fcontext [C:\Users\louis\projecten\hermes\build_release\external\boost\boost_1_86_0\libs\context\boost_context_obj.vc
xproj]
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170\BuildCustomizations\masm.targets(70,5): error MSB3721: de
opdracht ml64.exe /c /nologo /Fo"boost_context_obj.dir\Debug\make_x86_64_ms_pe_masm.obj" /D"WIN32" /D"_WINDOWS" /D"_CRT_SECURE_NO_DEPRECATE" /D"_CR
T_SECURE_NO_WARNINGS" /D"_CRT_NONSTDC_NO_DEPRECATE" /D"_CRT_NONSTDC_NO_WARNINGS" /D"_SCL_SECURE_NO_DEPRECATE" /D"_SCL_SECURE_NO_WARNINGS" /D"STATIC
_HERMES" /D"HERMES_RELEASE_VERSION="0.12.0"" /D"HERMESVM_GC_HADES" /D"HERMESVM_INDIRECT_THREADING" /D"HERMESVM_LOG_HEAP_SEGMENT_SIZE=22" /D"HERMESV
M_ALLOW_CONCURRENT_GC" /D"HERMESVM_ALLOW_INLINE_ASM" /D"HERMES_ENABLE_UNICODE_REGEXP_PROPERTY_ESCAPES" /D"HERMES_SLOW_DEBUG" /D"HERMES_USE_BOOST_CO
NTEXT=1" /D"USE_WIN10_ICU" /D"CMAKE_INTDIR="Debug"" /I "C:\Users\louis\projecten\hermes\hermes\external" /I "C:\Users\louis\projecten\hermes\hermes
\include" /I "C:\Users\louis\projecten\hermes\build_release\include" /I "C:\Users\louis\projecten\hermes\build_release\lib\config" /I "C:\Users\lou
is\projecten\hermes\hermes\external\icu_decls" /I "C:\Users\louis\projecten\hermes\hermes\external\llvh\include" /I "C:\Users\louis\projecten\herme
s\hermes\external\llvh\gen\include" /I "C:\Users\louis\projecten\hermes\build_release\external\llvh\include" /I "C:\Users\louis\projecten\hermes\he
rmes\external\boost\boost_1_86_0" /W3 /errorReport:prompt -fno-exceptions -fno-rtti /TaC:\Users\louis\projecten\hermes\hermes\external\boost\boost
_1_86_0\libs\context\src\asm\make_x86_64_ms_pe_masm.asm is afgesloten met code 1. [C:\Users\louis\projecten\hermes\build_release\external\boost\boo
st_1_86_0\libs\context\boost_context_obj.vcxproj]
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with the two CMake commands in the issue, then inspect external/boost/boost_1_86_0/libs/context/src/asm/make_x86_64_ms_pe_masm.asm around lines 90 and 162 and the generated boost_context_obj.vcxproj invocation. Done means the Windows Visual Studio 2022 ClangCL build completes without the MASM errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system, compilers, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.