I'm encountering a very different issue now with a clean build. The interesting part follows, and I attached a file with a more complete error message. I get many messages like this, complaining about object definitions not being available to class-definitions-tq.h. The error message seems to be legitimate. Can someone tell me, how are these -tq.h files generated? The answer seems to involve something called "torque". How would I go about telling "torque" where to find the missing headers? This problem doesn't seem to have anything to do with MSVC though, so I can't figure out why clang builds wouldn't be having the same error.
[exec] C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\type_traits(616): error C2139: 'v8::internal::Cell': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' [exec] C:\fd22cbe1\v8\out.gn\x64.release\gen\torque-generated/class-definitions-tq.h(78): note: see declaration of 'v8::internal::Cell' On Tuesday, 19 November 2019 20:10:47 UTC+8, Ben Ernst wrote: > > Seth, my output seems to be equivalent to yours. Included here. I'll run a > clean build and repeat. > Ben. > > include_dirs > From //build/config/compiler:default_include_dirs > (Added by //build/config/BUILDCONFIG.gn:429) > // > //out.gn/x64.release/gen/ > From //:internal_config > (Added by //BUILD.gn:3358) > // > //out.gn/x64.release/gen/ > > On Tuesday, 19 November 2019 00:57:59 UTC+8, Seth Brenith wrote: >> >> Weird, I don't see that behavior on my machine. Could you please run gn >> desc . //:torque_base --blame in your GN build directory and reply with >> the include_dirs portion of the output from that command? Mine looks >> like this (which doesn't include any libc++ dirs): >> >> include_dirs >> From //build/config/compiler:default_include_dirs >> (Added by //build/config/BUILDCONFIG.gn:429) >> // >> //out.gn/msvc/gen/ >> From //:internal_config >> (Added by //BUILD.gn:3355) >> // >> //out.gn/msvc/gen/ >> >> >> On Sunday, November 17, 2019 at 9:10:23 PM UTC-8, Ben Ernst wrote: >>> >>> Thank you Seth for your detailed information. >>> >>> When I attempt an MSVC build with "use_custom_libcxx=false", the build >>> of "torque_base" still includes >>> "-I../../buildtools/third_party/libc++/trunk/include" in the include path, >>> which results in other errors. >>> >>> I'm having trouble working out where those include paths are calculated, >>> so I can go about trying to fix it. Can anyone point me in the right >>> direction? >>> >>> >>> >>> On Sunday, 17 November 2019 00:15:53 UTC+8, Seth Brenith wrote: >>>> >>>> Correction: the flag name is /Zc:dllexportInlines-. >>>> >>>> Also, a couple of other things I should mention for completeness: >>>> - Attempting to link with a shared library that was built with a >>>> different toolchain is a recipe for maddening runtime errors unless that >>>> library takes great care to export only ABI-stable things, which V8 does >>>> not. >>>> - The errors in your latest post were related to imported functions, >>>> but problems building without this flag often manifest as the linker >>>> complaining about unresolved external functions. This is because the >>>> linker >>>> is fine with functions being undefined if the function is never called, >>>> but >>>> a dllexport function needs a definition. >>>> >>> -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/236c5e3b-9422-4130-a118-f22d23b95633%40googlegroups.com.
[exec] ********************************************************************** [exec] ** Visual Studio 2017 Developer Command Prompt v15.9.17 [exec] ** Copyright (c) 2017 Microsoft Corporation [exec] ********************************************************************** [exec] [vcvarsall.bat] Environment initialized for: 'x64' [exec] ninja: Entering directory `out.gn/x64.release' [exec] [1/534] CXX obj/torque_generated_initializers/console-tq-csa.obj [exec] FAILED: obj/torque_generated_initializers/console-tq-csa.obj [exec] ninja -t msvc -e environment.x64 -- "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64/cl.exe" /nologo /showIncludes -DUSE_AURA=1 -D_HAS_EXCEPTIONS=0 -DCOMPONENT_BUILD -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 -D_USING_V110_SDK71_ -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_RS2 -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_MINOR_MC -DENABLE_HANDLE_ZAPPING -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_CONCURRENT_MARKING -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_EMBEDDED_BUILTINS -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_COMPRESS_POINTERS -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_WIN -DDISABLE_UNTRUSTED_CODE_MITIGATIONS -DBUILDING_V8_SHARED -DV8_COMPRESS_POINTERS -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS -I../.. -Igen -I../.. -Igen /Gy /FS /bigobj /utf-8 /Zc:sizedDealloc- /wd4117 /D__DATE__= /D__TIME__= /D__TIMESTAMP__= /W4 /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 /Zi /MD /wd4245 /wd4267 /wd4324 /wd4701 /wd4702 /wd4703 /wd4709 /wd4714 /wd4715 /wd4718 /wd4723 /wd4724 /wd4800 /O2 /Ob2 /Oy- /Zc:inline /Gw /TP /wd4577 /GR- /c gen/torque-generated/src/builtins/console-tq-csa.cc /Foobj/torque_generated_initializers/console-tq-csa.obj /Fd"obj/torque_generated_initializers_cc.pdb" [exec] C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\type_traits(616): error C2139: 'v8::internal::Cell': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' [exec] C:\fd22cbe1\v8\out.gn\x64.release\gen\torque-generated/class-definitions-tq.h(78): note: see declaration of 'v8::internal::Cell' [exec] C:\fd22cbe1\v8\src/codegen/tnode.h(239): note: see reference to class template instantiation 'std::is_convertible<T,v8::internal::Object>' being compiled [exec] with [exec] [ [exec] T=v8::internal::Cell [exec] ] [exec] C:\fd22cbe1\v8\src/codegen/code-stub-assembler.h(1714): note: see reference to class template instantiation 'v8::internal::is_subtype<v8::internal::Cell,v8::internal::Cell>' being compiled [exec] C:\fd22cbe1\v8\src/objects/objects.h(271): note: see reference to class template instantiation 'v8::internal::TaggedImpl<v8::internal::HeapObjectReferenceType::STRONG,v8::internal::Address>' being compiled [exec] C:\fd22cbe1\v8\src/codegen/x64/register-x64.h(153): note: see reference to class template instantiation 'v8::internal::RegisterBase<v8::internal::XMMRegister,16>' being compiled [exec] C:\fd22cbe1\v8\src/codegen/x64/register-x64.h(53): note: see reference to class template instantiation 'v8::internal::RegisterBase<v8::internal::Register,16>' being compiled