No worries. You're finding real bugs which clang/gcc which don't show up with clang/gcc because of the way they do dll import/exports.
In this case there's a missing inline keyword at: https://cs.chromium.org/chromium/src/v8/src/objects/hash-table.h?sq=package:chromium&dr&g=0&l=150 It should be: static *inline* bool IsKey <https://cs.chromium.org/chromium/src/v8/src/objects/hash-table.h?l=150&gs=kythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523QjdXsBUmVONrf0Gu9SJVCuXfXWKN9vtEFvKVl2ekWCI%2Bkythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523UOF2H0st5qB__C7dy6rzK0z-foN2lvHyomBSlq-N_aA%2Bkythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523Ir1Uhuuh9q-FacxbysFblDqzwPVdszv8FH6UmBjaUTI&gsn=IsKey&ct=xref_usages> (ReadOnlyRoots <https://cs.chromium.org/chromium/src/v8/src/roots/roots.h?l=475&ct=xref_jump_to_def&gsn=ReadOnlyRoots> roots <https://cs.chromium.org/chromium/src/v8/src/objects/hash-table.h?l=150&gs=kythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523fgsylI_uMJUkIWzvNKqe0xuuFjPRJixagIekxAilv8Q%2Bkythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523dWaVgckFIDQzDkxollbPP1rFmxTpiLrderq0bS6TFDM%2Bkythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523A1FQg9bNiX9Iu_b1BahDB8eXqwozdCuHoEwK92qJ2rM&gsn=roots&ct=xref_usages>, Object <https://cs.chromium.org/chromium/src/v8/src/objects/objects.h?l=270&ct=xref_jump_to_def&gsn=Object> k <https://cs.chromium.org/chromium/src/v8/src/objects/hash-table.h?l=150&gs=kythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523BrIHkkHzh9_LlxG-4BQgaJ-ldyG7tueUfddGD4rkuYE%2Bkythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523CayiEZZehZYGiOqvrvIH0qPW8Evh2z6zyTBria7tz1Q%2Bkythe%253A%252F%252Fchromium.googlesource.com%252Fchromium%252Fsrc%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fv8%252Fsrc%252Fobjects%252Fhash-table.h%2523zHzy3uxbjnxXB2YRKbItLX3wzBE6yLqNhDm4_8NVeLA&gsn=k&ct=xref_usages> ); I'll upload a fix for this one, but I'm not likely to have time to spend on MSVC builds (since we don't officially support them), so probably won't do much else. If anything else is required, then please feel free to upload your own changes and I'll be happy to review them. Thanks, Dan On Fri, 15 Nov 2019 at 14:33, Ben Ernst <boi...@gmail.com> wrote: > Dan, > I resynced with your landed changes, and reverted 7186b6 as you suggested. > I encounter the error message below. As ever, I appreciate your ongoing > correspondence, I am sure it must be a painful process. > Ben > > [exec] FAILED: obj/d8/async-hooks-wrapper.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_CONCURRENT_MARKING > -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_EMBEDDED_BUILTINS > -DV8_SHARED_RO_HEAP -DV8_WIN64_UNWINDING_INFO > -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH > -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 -DUSING_V8_SHARED > -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS > -DV8_IMMINENT_DEPRECATION_WARNINGS -DUSING_V8_BASE_SHARED > -DUSING_V8_PLATFORM_SHARED -I../.. -Igen -I../.. -Igen -I../../include > -Igen/include -I../../include /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 ../../src/d8/async-hooks-wrapper.cc > /Foobj/d8/async-hooks-wrapper.obj /Fd"obj/d8_cc.pdb" > [exec] C:\fd22cbe1\v8\src/objects/hash-table-inl.h(166): error C2491: > 'v8::internal::HashTable<Derived,Shape>::IsKey': definition of dllimport > function not allowed > > On Saturday, 16 November 2019 00:42:59 UTC+10:30, Dan Elphick wrote: >> >> On 8.0, it looks like your errors are down to converting the return value >> of ElementSizeLog2Of to uint8_t. Not sure why that's giving you an error >> but triggering on the bots but you could try reverting >> 7186b60147911736cdd385c787e6fd5e86052cb5 >> <https://chromium-review.googlesource.com/c/v8/v8/+/1914215> locally and >> see if that works. >> >> My changes are now landed so you should be able to revert those local >> changes and resync. >> >> On Fri, 15 Nov 2019 at 13:56, Ben Ernst <boi...@gmail.com> wrote: >> >>> Dan, >>> My build on "master" (8.0) failed, but probably for reasons unrelated to >>> your changes. >>> I did my best to merge your changes to 7.9, I think I merged the changes >>> correctly, but the compilation fails. It's possible that my merge is at >>> fault though. >>> I've attached both logs in case they are useful. >>> Regards, >>> Ben >>> >>> On Friday, 15 November 2019 03:21:38 UTC+10:30, Clemens Hammacher wrote: >>>> >>>> FYI: There is an open bug about cleaning up utils.h >>>> <https://crbug.com/v8/8912>, and I worked a bit on that last Friday, >>>> but did not get to split out the BitField class, and others. Thanks for >>>> taking this over! >>>> >>>> >>>> On Thu, Nov 14, 2019 at 4:55 PM Dan Elphick <delp...@chromium.org> >>>> wrote: >>>> >>>>> The utils.h header file is a bit of a mess. I've just uploaded (but >>>>> not yet committed) >>>>> https://chromium-review.googlesource.com/c/v8/v8/+/1916604, which >>>>> splits out the parts of that used by the problematic executable. I've >>>>> checked the preprocessor output on Linux and it looks like it's not >>>>> declaring any export symbols that aren't defined so that should work, but >>>>> I >>>>> can't easily test this on MSVC, so please let me know if you have any >>>>> further problems. >>>>> >>>>> This should be applied on top of the previous change and also it's >>>>> based on master so may not apply cleanly to 7.8. >>>>> >>>>> On Thu, 14 Nov 2019 at 12:41, Ben Ernst <boi...@gmail.com> wrote: >>>>> >>>>>> Dan, I have attached the preprocessor output, following the same >>>>>> directions as before. Many enthusiastic thanks for your help, I'm deeply >>>>>> grateful. Ben. >>>>>> >>>>>> On Thursday, 14 November 2019 22:53:52 UTC+10:30, Ben Ernst wrote: >>>>>>> >>>>>>> Dan, the patch very nearly did the trick, there's just one last >>>>>>> unresolved external symbol. Ben. >>>>>>> >>>>>>> [exec] [5/686] LINK bytecode_builtins_list_generator.exe >>>>>>> bytecode_builtins_list_generator.exe.pdb >>>>>>> [exec] FAILED: bytecode_builtins_list_generator.exe >>>>>>> bytecode_builtins_list_generator.exe.pdb >>>>>>> [exec] >>>>>>> C:/32cfab25/depot_tools/bootstrap-3_8_0b1_chromium_1_bin/python/bin/python.exe >>>>>>> ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 >>>>>>> False link.exe /nologo /OUT:./bytecode_builtins_list_generator.exe >>>>>>> /PDB:./bytecode_builtins_list_generator.exe.pdb >>>>>>> @./bytecode_builtins_list_generator.exe.rsp >>>>>>> [exec] generate-bytecodes-builtins-list.obj : error LNK2019: >>>>>>> unresolved external symbol "public: void __cdecl >>>>>>> v8::internal::VirtualMemory::Reset(void)" (?Reset@VirtualMemory >>>>>>> @internal@v8@@QEAAXXZ) referenced in function "public: __cdecl >>>>>>> v8::internal::VirtualMemory::VirtualMemory(class >>>>>>> v8::internal::VirtualMemory &&)" (??0VirtualMemory@internal@v8@ >>>>>>> @QEAA@$$QEAV012@@Z) >>>>>>> [exec] >>>>>>> [exec] >>>>>>> [exec] bytecode-operands.obj : error LNK2001: unresolved >>>>>>> external symbol "public: void __cdecl >>>>>>> v8::internal::VirtualMemory::Reset(void)" (?Reset@VirtualMemory >>>>>>> @internal@v8@@QEAAXXZ) >>>>>>> [exec] >>>>>>> [exec] >>>>>>> [exec] bytecodes.obj : error LNK2001: unresolved external >>>>>>> symbol "public: void __cdecl v8::internal::VirtualMemory::Reset(void)" >>>>>>> (?Reset@VirtualMemory@internal@v8@@QEAAXXZ) >>>>>>> [exec] >>>>>>> [exec] >>>>>>> [exec] ./bytecode_builtins_list_generator.exe : fatal error >>>>>>> LNK1120: 1 unresolved externals >>>>>>> [exec] >>>>>>> [exec] >>>>>>> [exec] [6/686] ACTION //:run_torque(//build/toolchain/win:x64) >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thursday, 14 November 2019 22:09:39 UTC+10:30, Dan Elphick wrote: >>>>>>>> >>>>>>>> So the problem is that utils.h includes include/v8.h. That declares >>>>>>>> things like IsolateFromNeverReadOnlySpaceObject, which is appearing in >>>>>>>> the >>>>>>>> preprocessor outputs as: >>>>>>>> >>>>>>>> __declspec(dllexport) internal::Isolate* >>>>>>>> IsolateFromNeverReadOnlySpaceObject(Address obj); >>>>>>>> >>>>>>>> It's marked as export because it's passing -DBUILDING_V8_SHARED to >>>>>>>> the build command. Removing that is a little tricky, but the simpler >>>>>>>> way to >>>>>>>> fix is to rework the includes to avoid including v8.h: >>>>>>>> >>>>>>>> Here's a patch: >>>>>>>> >>>>>>>> diff --git a/src/parsing/scanner.h b/src/parsing/scanner.h >>>>>>>> index d9216f222a..a7386050d6 100644 >>>>>>>> --- a/src/parsing/scanner.h >>>>>>>> +++ b/src/parsing/scanner.h >>>>>>>> @@ -10,6 +10,7 @@ >>>>>>>> #include <algorithm> >>>>>>>> #include <memory> >>>>>>>> >>>>>>>> +#include "include/v8.h" >>>>>>>> #include "src/base/logging.h" >>>>>>>> #include "src/common/globals.h" >>>>>>>> #include "src/common/message-template.h" >>>>>>>> diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h >>>>>>>> index f5e56ac951..0e15898f73 100644 >>>>>>>> --- a/src/runtime/runtime.h >>>>>>>> +++ b/src/runtime/runtime.h >>>>>>>> @@ -7,6 +7,7 @@ >>>>>>>> >>>>>>>> #include <memory> >>>>>>>> >>>>>>>> +#include "include/v8.h" >>>>>>>> #include "src/base/platform/time.h" >>>>>>>> #include "src/common/globals.h" >>>>>>>> #include "src/objects/elements-kind.h" >>>>>>>> diff --git a/src/utils/utils.h b/src/utils/utils.h >>>>>>>> index 6f04ea63d3..8ba4e6bef7 100644 >>>>>>>> --- a/src/utils/utils.h >>>>>>>> +++ b/src/utils/utils.h >>>>>>>> @@ -12,7 +12,6 @@ >>>>>>>> #include <string> >>>>>>>> #include <type_traits> >>>>>>>> >>>>>>>> -#include "include/v8.h" >>>>>>>> #include "src/base/bits.h" >>>>>>>> #include "src/base/compiler-specific.h" >>>>>>>> #include "src/base/logging.h" >>>>>>>> >>>>>>>> Please try that and see if it works and I'll upload up to master. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, 14 Nov 2019 at 11:06, Ben Ernst <boi...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Dan, >>>>>>>>> >>>>>>>>> Yes, torque builds OK. >>>>>>>>> >>>>>>>>> I have attached the preprocessed output, zipped up. I hope that >>>>>>>>> this tells you something. >>>>>>>>> >>>>>>>>> I tried building the following versions of V8 (in addition to 7.8 >>>>>>>>> I was building originally), they all have essentially the same >>>>>>>>> problem. >>>>>>>>> >>>>>>>>> 7.9.317.22 >>>>>>>>> 7.7.299.15 >>>>>>>>> 7.2.502.28 >>>>>>>>> >>>>>>>>> Thank you in advance for any ideas. >>>>>>>>> Ben >>>>>>>>> >>>>>>>>> On Thursday, 14 November 2019 20:47:56 UTC+10:30, Dan Elphick >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> If instead of building everything, does torque build? e.g. ninja >>>>>>>>>> -C <build-dir> torque. It looks like it does from the log but just >>>>>>>>>> want to >>>>>>>>>> check. It seems odd that it can build that one but not the other >>>>>>>>>> simpler >>>>>>>>>> executable. >>>>>>>>>> >>>>>>>>>> Below is the command line for building bytecode-operands.obj >>>>>>>>>> from your log. It specifies only the single .cc which doesn't >>>>>>>>>> include very >>>>>>>>>> much at all so I don't see how it would get those symbols. You could >>>>>>>>>> try >>>>>>>>>> adding the /P option to cl.exe ( >>>>>>>>>> https://docs.microsoft.com/en-us/cpp/build/reference/p-preprocess-to-a-file?view=vs-2019 >>>>>>>>>> <https://www.google.com/url?q=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fcpp%2Fbuild%2Freference%2Fp-preprocess-to-a-file%3Fview%3Dvs-2019&sa=D&sntz=1&usg=AFQjCNG-ELxt9CxA61sjMVK-8z8nrL4Efg>) >>>>>>>>>> and see what the preprocessed output is. >>>>>>>>>> >>>>>>>>>> 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 -DV8_INTL_SUPPORT -DV8_USE_SNAPSHOT >>>>>>>>>> -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_CONCURRENT_MARKING >>>>>>>>>> -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_EMBEDDED_BUILTINS >>>>>>>>>> -DV8_SHARED_RO_HEAP -DV8_WIN64_UNWINDING_INFO >>>>>>>>>> -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH >>>>>>>>>> -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS >>>>>>>>>> -DV8_TARGET_ARCH_X64 >>>>>>>>>> -DDISABLE_UNTRUSTED_CODE_MITIGATIONS -DBUILDING_V8_SHARED >>>>>>>>>> -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS >>>>>>>>>> -DUSING_V8_BASE_SHARED >>>>>>>>>> -I../.. -I../.. -Igen -I../.. -Igen >>>>>>>>>> /Gy /FS >>>>>>>>>> /bigobj >>>>>>>>>> /utf-8 >>>>>>>>>> /Zc:twoPhase /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 ../../src/interpreter/bytecode-operands.cc >>>>>>>>>> /Foobj/bytecode_builtins_list_generator/bytecode-operands.obj >>>>>>>>>> /Fd"obj/bytecode_builtins_list_generator_cc.pdb" >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, 13 Nov 2019 at 20:38, Ben Ernst <boi...@gmail.com> wrote: >>>>>>>>>> >>>>>>>>>>> Dan, >>>>>>>>>>> >>>>>>>>>>> I've attached the output from a clean build with "-v" as you >>>>>>>>>>> suggested. Thoroughly appreciate any advice. Quite desperate at >>>>>>>>>>> this point. >>>>>>>>>>> >>>>>>>>>>> Marcelo, >>>>>>>>>>> >>>>>>>>>>> Thank you for the suggestion. Using "is_clang=true" succeeds, >>>>>>>>>>> but results in a binary that is unusable. It cannot be imported >>>>>>>>>>> into an >>>>>>>>>>> MSVC project due to unresolved symbols. It looks like certain >>>>>>>>>>> symbols clang >>>>>>>>>>> doesn't think needs to be exported, but MSVC does expect them to be >>>>>>>>>>> exported. My motivation for "use_custom_libcxx" is similar. >>>>>>>>>>> >>>>>>>>>>> Ben >>>>>>>>>>> >>>>>>>>>>> On Wednesday, 13 November 2019 22:27:39 UTC+10:30, Dan Elphick >>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>> That's very odd. bytecode_builtins_list_generator is a very >>>>>>>>>>>> small executable that depends on base and generates a header file. >>>>>>>>>>>> It >>>>>>>>>>>> should not be using any of the symbols in your log below and would >>>>>>>>>>>> usually >>>>>>>>>>>> be built and linked before compiling the files containing those >>>>>>>>>>>> symbols. >>>>>>>>>>>> >>>>>>>>>>>> Could you do a clean build and give the output of running the >>>>>>>>>>>> build with ninja -v (so it prints all build commands even if they >>>>>>>>>>>> succeed)? >>>>>>>>>>>> Just the lines involving the obj files in your log should be >>>>>>>>>>>> enough. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Dan >>>>>>>>>>>> >>>>>>>>>>>> On Wed, 13 Nov 2019 at 11:32, Ben Ernst <boi...@gmail.com> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> My full gn args are as follows: >>>>>>>>>>>>> >>>>>>>>>>>>> is_debug = false >>>>>>>>>>>>> target_cpu = "x64" >>>>>>>>>>>>> treat_warnings_as_errors=false >>>>>>>>>>>>> is_component_build=true >>>>>>>>>>>>> v8_enable_i18n_support=false >>>>>>>>>>>>> v8_use_snapshot=true >>>>>>>>>>>>> use_custom_libcxx=false >>>>>>>>>>>>> is_clang=false >>>>>>>>>>>>> >>>>>>>>>>>>> But when I try to build V8 (n.b. on Windows) (n.b. V8 >>>>>>>>>>>>> version 7.8.279) I get the following errors (among many others): >>>>>>>>>>>>> >>>>>>>>>>>>> [exec] [7/685] LINK bytecode_builtins_list_generator.exe >>>>>>>>>>>>> bytecode_builtins_list_generator.exe.pdb >>>>>>>>>>>>> [exec] FAILED: bytecode_builtins_list_generator.exe >>>>>>>>>>>>> bytecode_builtins_list_generator.exe.pdb >>>>>>>>>>>>> [exec] >>>>>>>>>>>>> C:/6faf51f1/depot_tools/bootstrap-3_8_0b1_chromium_1_bin/python/bin/python.exe >>>>>>>>>>>>> ../../build/toolchain/win/tool_wrapper.py link-wrapper >>>>>>>>>>>>> environment.x64 >>>>>>>>>>>>> False link.exe /nologo /OUT:./bytecode_builtins_list_generator.exe >>>>>>>>>>>>> /PDB:./bytecode_builtins_list_generator.exe.pdb >>>>>>>>>>>>> @./bytecode_builtins_list_generator.exe.rsp >>>>>>>>>>>>> [exec] generate-bytecodes-builtins-list.obj : error >>>>>>>>>>>>> LNK2019: unresolved external symbol "class v8::internal::Isolate >>>>>>>>>>>>> * __cdecl >>>>>>>>>>>>> v8::internal::IsolateFromNeverReadOnlySpaceObject(unsigned >>>>>>>>>>>>> __int64)" >>>>>>>>>>>>> (?IsolateFromNeverReadOnlySpaceObject@internal@v8@ >>>>>>>>>>>>> @YAPEAVIsolate@12@_K@Z) referenced in function "public: class >>>>>>>>>>>>> v8::Local<class v8::Value> __cdecl >>>>>>>>>>>>> v8::Context::GetEmbedderData(int)" >>>>>>>>>>>>> (?GetEmbedderData@Context@v8@@QEAA?AV?$Local@VValue@v8@@@2@H >>>>>>>>>>>>> @Z) >>>>>>>>>>>>> [exec] bytecode-operands.obj : error LNK2001: unresolved >>>>>>>>>>>>> external symbol "class v8::internal::Isolate * __cdecl >>>>>>>>>>>>> v8::internal::IsolateFromNeverReadOnlySpaceObject(unsigned >>>>>>>>>>>>> __int64)" >>>>>>>>>>>>> (?IsolateFromNeverReadOnlySpaceObject@internal@v8@ >>>>>>>>>>>>> @YAPEAVIsolate@12@_K@Z) >>>>>>>>>>>>> [exec] bytecodes.obj : error LNK2001: unresolved external >>>>>>>>>>>>> symbol "class v8::internal::Isolate * __cdecl >>>>>>>>>>>>> v8::internal::IsolateFromNeverReadOnlySpaceObject(unsigned >>>>>>>>>>>>> __int64)" >>>>>>>>>>>>> (?IsolateFromNeverReadOnlySpaceObject@internal@v8@ >>>>>>>>>>>>> @YAPEAVIsolate@12@_K@Z) >>>>>>>>>>>>> [exec] generate-bytecodes-builtins-list.obj : error >>>>>>>>>>>>> LNK2019: unresolved external symbol "public: __cdecl >>>>>>>>>>>>> v8::HandleScope::~HandleScope(void)" (??1HandleScope@v8 >>>>>>>>>>>>> @@QEAA@XZ) referenced in function "public: __cdecl >>>>>>>>>>>>> v8::EscapableHandleScope::~EscapableHandleScope(void)" >>>>>>>>>>>>> (??1EscapableHandleScope@v8@@QEAA@XZ) >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> What could I be doing wrong? Any suggestions appreciated. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Wednesday, 6 November 2019 21:30:10 UTC+10:30, Ben Ernst >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks Hans, I'm sure I tried that before, but I'll give that >>>>>>>>>>>>>> a shot again. Ben. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Monday, 4 November 2019 17:46:08 UTC+10:30, Hans Maier >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> the libc provided together with v8 is incompatible with the >>>>>>>>>>>>>>> msvc-libc. >>>>>>>>>>>>>>> I had to provide "use_custom_libcxx=false" to be able to >>>>>>>>>>>>>>> link it with my own program. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Am Sonntag, 3. November 2019 12:43:57 UTC+1 schrieb Ben >>>>>>>>>>>>>>> Ernst: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Of note, the sample utilities "d8" and "v8_hello_world" >>>>>>>>>>>>>>>> build fine, and they don't get this same linker error. I can't >>>>>>>>>>>>>>>> see anything >>>>>>>>>>>>>>>> I'm doing differently, however. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Sunday, 3 November 2019 22:08:27 UTC+10:30, Ben Ernst >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks Jakob, is there by any chance a correpsonding >>>>>>>>>>>>>>>>> buildbot for Windows and MSVC++? I get this linker error from >>>>>>>>>>>>>>>>> it seems V8 >>>>>>>>>>>>>>>>> 7.2 onwards, although I'm focussing on 7.8. The "monolith" >>>>>>>>>>>>>>>>> build seems to >>>>>>>>>>>>>>>>> be working though. I wonder if it's an MSVC++ peculiarity >>>>>>>>>>>>>>>>> that is tripping >>>>>>>>>>>>>>>>> me up? >>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>> Ben >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Saturday, 2 November 2019 02:17:38 UTC+10:30, Jakob >>>>>>>>>>>>>>>>> Kummerow wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Yes, the component build is expected to work for every >>>>>>>>>>>>>>>>>> version, and our buildbot thinks it does: >>>>>>>>>>>>>>>>>> https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20shared >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> The component build is also the default in Debug mode, >>>>>>>>>>>>>>>>>> which most V8 developers compile/use every day. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Fri, Nov 1, 2019 at 1:00 AM Ben Ernst < >>>>>>>>>>>>>>>>>> boi...@gmail.com> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Is the idea of a "component build", where you specify >>>>>>>>>>>>>>>>>>> "is_component_build=true" in the arguments to GN, actually >>>>>>>>>>>>>>>>>>> supposed to work >>>>>>>>>>>>>>>>>>> at all in V8 (v7.8)? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> In particular, I am getting this unresolved external >>>>>>>>>>>>>>>>>>> symbol: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> 1>ezv8_platform.obj : error LNK2019: unresolved external >>>>>>>>>>>>>>>>>>> symbol "__declspec(dllimport) class std::unique_ptr<class >>>>>>>>>>>>>>>>>>> v8::Platform,struct std::default_delete<class v8::Platform> >>>>>>>>>>>>>>>>>>> > __cdecl >>>>>>>>>>>>>>>>>>> v8::platform::NewDefaultPlatform(int,enum >>>>>>>>>>>>>>>>>>> v8::platform::IdleTaskSupport,enum >>>>>>>>>>>>>>>>>>> v8::platform::InProcessStackDumping,class >>>>>>>>>>>>>>>>>>> std::unique_ptr<class >>>>>>>>>>>>>>>>>>> v8::TracingController,struct std::default_delete<class >>>>>>>>>>>>>>>>>>> v8::TracingController> >)" >>>>>>>>>>>>>>>>>>> (__imp_?NewDefaultPlatform@platform >>>>>>>>>>>>>>>>>>> @v8@@YA?AV?$unique_ptr@VPlatform@v8@ >>>>>>>>>>>>>>>>>>> @U?$default_delete@VPlatform@v8@@@std@@@std@ >>>>>>>>>>>>>>>>>>> @HW4IdleTaskSupport@12@W4InProcessStackDumping@12 >>>>>>>>>>>>>>>>>>> @V?$unique_ptr@VTracingController@v8@ >>>>>>>>>>>>>>>>>>> @U?$default_delete@VTracingController@v8@@@std@@@4@@Z) >>>>>>>>>>>>>>>>>>> referenced in function "public: __cdecl >>>>>>>>>>>>>>>>>>> ezv8::Platform::Impl::Impl(void)" >>>>>>>>>>>>>>>>>>> (??0Impl@Platform@ezv8@@QEAA@XZ) >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> The function "NewDefaultPlatform" seems to be exported >>>>>>>>>>>>>>>>>>> from v8_libplatform. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> V8_PLATFORM_EXPORT std::unique_ptr<v8::Platform> >>>>>>>>>>>>>>>>>>> NewDefaultPlatform( >>>>>>>>>>>>>>>>>>> int thread_pool_size = 0, >>>>>>>>>>>>>>>>>>> IdleTaskSupport idle_task_support = >>>>>>>>>>>>>>>>>>> IdleTaskSupport::kDisabled, >>>>>>>>>>>>>>>>>>> InProcessStackDumping in_process_stack_dumping = >>>>>>>>>>>>>>>>>>> InProcessStackDumping::kDisabled, >>>>>>>>>>>>>>>>>>> std::unique_ptr<v8::TracingController> >>>>>>>>>>>>>>>>>>> tracing_controller = {}); >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> But the destructor of the base class, v8::Platform is >>>>>>>>>>>>>>>>>>> not exported. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> /** >>>>>>>>>>>>>>>>>>> * V8 Platform abstraction layer. >>>>>>>>>>>>>>>>>>> * >>>>>>>>>>>>>>>>>>> * The embedder has to provide an implementation of this >>>>>>>>>>>>>>>>>>> interface before >>>>>>>>>>>>>>>>>>> * initializing the rest of V8. >>>>>>>>>>>>>>>>>>> */ >>>>>>>>>>>>>>>>>>> class Platform { >>>>>>>>>>>>>>>>>>> public: >>>>>>>>>>>>>>>>>>> virtual ~Platform() = default; >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I think that's the cause of the error above, although I >>>>>>>>>>>>>>>>>>> may have misinterpreted the error message. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Am I barking up the wrong tree by trying to use the >>>>>>>>>>>>>>>>>>> component build at all? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks in advance for any advice. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>> -- >>>>>>>>>>>>> v8-users mailing list >>>>>>>>>>>>> v8-u...@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-u...@googlegroups.com. >>>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>>> https://groups.google.com/d/msgid/v8-users/6d7d3682-8f5c-431a-85fe-b929d9834522%40googlegroups.com >>>>>>>>>>>>> <https://groups.google.com/d/msgid/v8-users/6d7d3682-8f5c-431a-85fe-b929d9834522%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>> -- >>>>>>>>>>> v8-users mailing list >>>>>>>>>>> v8-u...@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-u...@googlegroups.com. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/v8-users/d4243240-9bdb-4b9f-971f-b191ab2aeab5%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/v8-users/d4243240-9bdb-4b9f-971f-b191ab2aeab5%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> -- >>>>>>>>> v8-users mailing list >>>>>>>>> v8-u...@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-u...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/v8-users/7a894267-c1c1-4b79-ac92-e1840b002d70%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/v8-users/7a894267-c1c1-4b79-ac92-e1840b002d70%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>> -- >>>>>> v8-users mailing list >>>>>> v8-u...@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-u...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/v8-users/a138e0cb-631b-41b5-b9f3-4147db3366b2%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/v8-users/a138e0cb-631b-41b5-b9f3-4147db3366b2%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>>> -- >>>>> v8-users mailing list >>>>> v8-u...@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-u...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/v8-users/CALH_77vm2o1Lp7o5dm1ONYP0M9KiO855RQEzuKKrUgSf9ih48g%40mail.gmail.com >>>>> <https://groups.google.com/d/msgid/v8-users/CALH_77vm2o1Lp7o5dm1ONYP0M9KiO855RQEzuKKrUgSf9ih48g%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> >>>> >>>> -- >>>> >>>> Clemens Backes >>>> >>>> (né Hammacher) >>>> >>>> Software Engineer >>>> >>>> clem...@google.com >>>> >>>> >>>> Google Germany GmbH >>>> >>>> Erika-Mann-Straße 33 >>>> >>>> 80636 München >>>> >>>> Geschäftsführer: Paul Manicle, Halimah DeLaine Prado >>>> >>>> Registergericht und -nummer: Hamburg, HRB 86891 >>>> >>>> Sitz der Gesellschaft: Hamburg >>>> >>>> Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise >>>> erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes >>>> weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte >>>> wissen, dass die E-Mail an die falsche Person gesendet wurde. >>>> >>>> >>>> This e-mail is confidential. If you received this communication by >>>> mistake, please don't forward it to anyone else, please erase all copies >>>> and attachments, and please let me know that it has gone to the wrong >>>> person. >>>> >>>> >>>> >>>> -- >>>> >>>> Clemens Backes >>>> >>>> (né Hammacher) >>>> >>>> Software Engineer >>>> >>>> clem...@google.com >>>> >>>> >>>> Google Germany GmbH >>>> >>>> Erika-Mann-Straße 33 >>>> >>>> 80636 München >>>> >>>> >>>> Geschäftsführer: Paul Manicle, Halimah DeLaine Prado >>>> >>>> Registergericht und -nummer: Hamburg, HRB 86891 >>>> >>>> Sitz der Gesellschaft: Hamburg >>>> >>>> >>>> Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise >>>> erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes >>>> weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte >>>> wissen, dass die E-Mail an die falsche Person gesendet wurde. >>>> >>>> >>>> This e-mail is confidential. If you received this communication by >>>> mistake, please don't forward it to anyone else, please erase all copies >>>> and attachments, and please let me know that it has gone to the wrong >>>> person. >>>> >>> -- >>> -- >>> v8-users mailing list >>> v8-u...@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-u...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/v8-users/a0fa2b1c-0635-4468-94eb-45579f36e0af%40googlegroups.com >>> <https://groups.google.com/d/msgid/v8-users/a0fa2b1c-0635-4468-94eb-45579f36e0af%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > -- > 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/cfe74a6d-4ee8-4958-a2ea-7fd866109939%40googlegroups.com > <https://groups.google.com/d/msgid/v8-users/cfe74a6d-4ee8-4958-a2ea-7fd866109939%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- -- 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/CALH_77s%3Dm3ZS57yPfFHcWveQYmCZTQnb9L4R3Z3RdifGh5RLJQ%40mail.gmail.com.