I'm building clang component build today, (that one's supported right?) from 7.9-lkgr. I'm sure I built 7.8-lkgr the other day, and that was fine, but on 7.9 I get this unresolved symbol that might be related to std::shared_ptr. My args.gn is all default settings for x64.release except v8_enable_i18n_support=false. Any ideas?
[exec] [833/840] STAMP obj/v8_external_snapshot.inputdeps.stamp [exec] [834/840] CXX obj/v8_external_snapshot/embedded.obj [exec] [835/840] CXX obj/v8_external_snapshot/natives-external.obj [exec] [836/840] CXX obj/v8_external_snapshot/setup-isolate-deserialize.obj [exec] [837/840] CXX obj/v8_external_snapshot/snapshot-external.obj [exec] [838/840] STAMP obj/v8_external_snapshot.stamp [exec] [839/840] STAMP obj/v8_maybe_snapshot.stamp [exec] [840/840] LINK(DLL) v8.dll v8.dll.lib v8.dll.pdb [exec] FAILED: v8.dll v8.dll.lib v8.dll.pdb [exec] ninja -t msvc -e environment.x64 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo "-libpath:..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x64" "-libpath:..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\lib\x64" "-libpath:..\..\..\..\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "-libpath:..\..\..\..\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64" "-libpath:..\..\..\..\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x64" "-libpath:..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x64" "-libpath:..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\lib\x64" "-libpath:..\..\..\..\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "-libpath:..\..\..\..\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64" "-libpath:..\..\..\..\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\um\x64" /IMPLIB:./v8.dll.lib /DLL /OUT:./v8.dll /PDB:./v8.dll.pdb @./v8.dll.rsp [exec] lld-link: error: undefined symbol: __declspec(dllimport) public: void __cdecl std::__1::__shared_count::__add_shared(void) [exec] >>> referenced by .\..\..\include\v8.h:4614 [exec] >>> obj/v8/v8dll-main.obj:(public: __cdecl v8::CompiledWasmModule::CompiledWasmModule(class v8::CompiledWasmModule const &)) [exec] >>> referenced by .\..\..\include\v8.h:4614 [exec] >>> obj/v8/v8dll-main.obj:(public: __cdecl v8::CompiledWasmModule::CompiledWasmModule(class v8::CompiledWasmModule &&)) [exec] [exec] lld-link: error: undefined symbol: __declspec(dllimport) public: bool __cdecl std::__1::__shared_count::__release_shared(void) [exec] >>> referenced by .\..\..\include\v8.h:4614 [exec] >>> obj/v8/v8dll-main.obj:(public: __cdecl v8::CompiledWasmModule::~CompiledWasmModule(void)) [exec] >>> referenced by .\..\..\include\v8.h:4787 [exec] >>> obj/v8/v8dll-main.obj:(public: __cdecl v8::WasmModuleObjectBuilderStreaming::~WasmModuleObjectBuilderStreaming(void)) [exec] >>> referenced by .\..\..\include\v8.h:4797 [exec] >>> obj/v8/v8dll-main.obj:(private: class v8::WasmModuleObjectBuilderStreaming & __cdecl v8::WasmModuleObjectBuilderStreaming::operator=(class v8::WasmModuleObjectBuilderStreaming &&)) [exec] ninja: build stopped: subcommand failed. Removed symlink "C:\fce98c51". On Wednesday, 20 November 2019 12:03:41 UTC+8, Ben Ernst wrote: > > Would anyone have any advice on how to get torque to see these type > definitions? I've attached a longer excerpt of the errors I get, and my " > args.gn". I'm building component build under MSVC. > > On Tuesday, 19 November 2019 21:28:26 UTC+8, Ben Ernst wrote: >> >> 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/f02750e3-0a99-4347-bd0c-1bdffed02a79%40googlegroups.com.