On Mon, Aug 31, 2020 at 4:12 PM Alex Kodat <ako...@rocketsoftware.com> wrote:
>
> In doing a clang build under Windows (for reasons I'll get into in another 
> post) I hit a the following issue:
>
> [4/1336] CXX obj/src/inspector/inspector/v8-stack-trace-impl.obj
> FAILED: obj/src/inspector/inspector/v8-stack-trace-impl.obj
> ..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo 
> /showIncludes:user "-imsvc..\..\..\..\Program Files (x86)\Microsoft Visual 
> Studio\2019\Community\VC\Tools\MSVC\14.25.28610\ATLMFC\include" 
> "-imsvc..\..\..\..\Program Files (x86)\Microsoft Visual 
> Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include" 
> "-imsvc..\..\..\..\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" 
> "-imsvc..\..\..\..\Program Files (x86)\Windows 
> Kits\10\include\10.0.19041.0\ucrt" "-imsvc..\..\..\..\Program Files 
> (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-imsvc..\..\..\..\Program 
> Files (x86)\Windows Kits\10\include\10.0.19041.0\um" 
> "-imsvc..\..\..\..\Program Files (x86)\Windows 
> Kits\10\include\10.0.19041.0\winrt" "-imsvc..\..\..\..\Program Files 
> (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" -DUSE_AURA=1 
> "-DCR_CLANG_REVISION=\"llvmorg-12-init-3492-ga1caa302-1\"" -D_HAS_NODISCARD 
> -D_HAS_EXCEPTIONS=0 -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE 
> -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS 
> -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL 
> -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX 
> -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_VB -D_WIN32_WINNT=0x0A00 
> -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 
> -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_MINOR_MC -DV8_INTL_SUPPORT 
> -DENABLE_HANDLE_ZAPPING -DV8_CONCURRENT_MARKING 
> -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_SHARED_RO_HEAP 
> -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH 
> -DV8_SNAPSHOT_COMPRESSION -DV8_DEPRECATION_WARNINGS 
> -DV8_IMMINENT_DEPRECATION_WARNINGS -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS 
> -DV8_TARGET_OS_WIN -DDISABLE_UNTRUSTED_CODE_MITIGATIONS 
> -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS 
> -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS -I../.. -Igen 
> -I../../include -I../.. -I../../include -Igen -fcolor-diagnostics 
> -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports 
> -mllvm -instcombine-lower-dbg-declare=0 -fcomplete-member-pointers /Gy /FS 
> /bigobj /utf-8 /Zc:twoPhase /Zc:sizedDealloc- /X 
> /D__WRL_ENABLE_FUNCTION_STATICS__ -fmsc-version=1916 /guard:cf,nochecks -m64 
> /Brepro -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= 
> -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes /W4 
> -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi 
> /wd4091 /wd4127 /wd4251 /wd4275 /wd4312 /wd4324 /wd4351 /wd4355 /wd4503 
> /wd4589 /wd4611 /wd4100 /wd4121 /wd4244 /wd4505 /wd4510 /wd4512 /wd4610 
> /wd4838 /wd4995 /wd4996 /wd4456 /wd4457 /wd4458 /wd4459 /wd4200 /wd4201 
> /wd4204 /wd4221 /wd4245 /wd4267 /wd4305 /wd4389 /wd4702 /wd4701 /wd4703 
> /wd4661 /wd4706 /wd4715 -Wno-missing-field-initializers -Wno-unused-parameter 
> -Wno-c++11-narrowing -Wno-unneeded-internal-declaration 
> -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-psabi 
> -Wno-ignored-pragma-optimize -Wno-implicit-int-float-conversion 
> -Wno-final-dtor-non-final-class -Wno-builtin-assume-aligned-alignment 
> -Wno-deprecated-copy -Wno-non-c-typedef-for-linkage -Wno-string-concatenation 
> -Wmax-tokens /Z7 -gcodeview-ghash -Xclang -debug-info-kind=constructor /MT 
> -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare 
> -Wmissing-field-initializers -Wunreachable-code -Wshorten-64-to-32 /wd4245 
> /wd4267 /wd4324 /wd4701 /wd4702 /wd4703 /wd4709 /wd4714 /wd4715 /wd4718 
> /wd4723 /wd4724 /wd4800 /O2 /Ob2 /Oy- /Zc:inline /Gw -Wexit-time-destructors 
> -Wno-trigraphs /TP /wd4577 /GR- /c ../../src/inspector/v8-stack-trace-impl.cc 
> /Foobj/src/inspector/inspector/v8-stack-trace-impl.obj 
> /Fd"obj/src/inspector/inspector_cc.pdb"
> In file included from ../../src/inspector/v8-stack-trace-impl.cc:5:
> In file included from ../..\src/inspector/v8-stack-trace-impl.h:11:
> In file included from ../..\include/v8-inspector.h:14:
> ../../include/v8.h(912,27): error: no template named 'atomic' in namespace 
> 'std'
>     reinterpret_cast<std::atomic<T*>*>(&val_)->store(new_val,
>                      ~~~~~^
> ../../include/v8.h(920,34): error: no template named 'atomic' in namespace 
> 'std'
>     return reinterpret_cast<std::atomic<const T*> const*>(&val_)->load(
>                             ~~~~~^
> 2 errors generated.
>
> Weirdly, I don't get similar errors with clang under say MacOS and I'm not 
> sure I see why clang is seeing fit to expand the TracedReferenceBase template 
> (MSVC doesn't seem to) but, all that said, it seems a little tacky having a 
> std::atomic reference in v8.h without a corresponding #include <atomic> at 
> the top. When I added this include to v8.h, my compiles all worked (though 
> with lots of warnings, another story) so happy to do a PR to add this or 
> maybe an insider could fix this more easily than me. Or maybe I'm missing 
> something?
>
> Ordinarily, if this were my company's product, I'd insist on understanding 
> why this doesn't happen on other platforms but, since it seems just wrong not 
> to have the #include <atomic> I don't think it's worth the time.
>
> Thanks

I suspect it's a simple mistake. If I had to venture a guess, it's
that on most platforms <atomic> gets pulled in by <memory> (which v8.h
includes) but not on your system.

I'm not on the V8 team but a CL with a fix is almost certainly
welcome. Explicitly including <atomic> is the right thing to do.

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/CAHQurc9ma8w-jb8w1%2B8vhkLet5%3DXJKwG6ec5YR%2BbcasSqc1W-w%40mail.gmail.com.

Reply via email to