Thanks Bill, I'll take a look at your fixes.

Part of why I want to have a working vcpkg port is to have more developers 
use it and contribute to it, so hopefully further breakage is at least not 
as bad.

On Monday, July 13, 2020 at 10:29:37 AM UTC-6, Bill Ticehurst wrote:
>
> If you search for my last name on this or the v8-dev forum, you'll find a 
> lot of attempts at fixing this, and ultimately giving up. (e.g. 
> https://groups.google.com/forum/#!searchin/v8-users/ticehurst|sort:date/v8-users/mmwWxpb64_I/HtL-SI9wBgAJ
>  might 
> be the most relevant). Basically MSVC is not a fully supported compiler. 
> static releases builds are tested (e.g. that's how Node.js builds), but 
> everything else is untested and breaks pretty quickly even if you get a fix 
> in.
>
> - Bill
>
> On Monday, July 13, 2020 at 7:41:39 AM UTC-7, Rodrigo Hernandez wrote:
>>
>> Thanks Ben, I will try that. 
>>
>> On Mon, Jul 13, 2020, 4:54 AM Ben Ernst <boi...@gmail.com> wrote:
>>
>>> Rodrigo, you might have more luck with the latest 8.1 tag (rather than 
>>> 8.3), I recall that 8.1 is building OK with MSVC. If you're writing a vcpkg 
>>> port, settling for a clang build might not be ideal, since MSVC programs 
>>> won't be able to reliably link to it.
>>> Ben
>>>
>>> On Mon, 13 Jul 2020, 2:17 am Rodrigo Hernandez, <kwizatz.a...@gmail.com> 
>>> wrote:
>>>
>>>>
>>>> Ok, findings so far:
>>>>
>>>> commenting out the flag "/Zc:inline" in build/config/compiler/BUILD.gn 
>>>> takes care of the FixedArray::set undefined symbol, but the build takes 
>>>> longer, need to see if bumping "/Ob" from "/Ob2" to "/Ob3" fixes the issue 
>>>> w/o removing the inline flag.
>>>>
>>>> After that, both builds (debug/release) get to the same place, 73 
>>>> unresolved symbols at v8.dll link stage, all seem to be part of the 
>>>> v8_initializers source set which is a dep of the v8_for_testing component 
>>>> but not for the v8 one.
>>>> I tried adding the dependency but no luck, seems the linker doesn't 
>>>> take the files into account, or I did something wrong, not sure, still I 
>>>> doubt that is the proper solution since the clang/customc++ build.is 
>>>> fine.
>>>>
>>>> I also tried the clang build with system libc++, that produces 
>>>> compiling errors that were relatively easy to solve, adding the compiler 
>>>> flags "-Wno-invalid-offsetof" and "-Wno-range-loop-construct" should do 
>>>> the 
>>>> work, however with that last one
>>>> still saw the compiler complain because of some for(auto x: map) loop 
>>>> which should really be for(auto &x: map), but again, that may have been 
>>>> due 
>>>> to a dirty repo.
>>>>
>>>> So while I guess I found a workaround I still would like to know whats 
>>>> with the initializer symbols missing in MSVC, can somebody comment? 
>>>>
>>>> Thanks!
>>>>
>>>>
>>>> On Thursday, July 9, 2020 at 2:06:21 PM UTC-6, Rodrigo Hernandez wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> I am trying to create a VCPKG (https://github.com/microsoft/vcpkg) 
>>>>> port of v8,
>>>>> and in doing so I am syncing to tag 8.3.110.13 as suggested here: 
>>>>> https://v8.dev/docs/version-numbers
>>>>>
>>>>> Since this is package manager, I want to build against msvc's c++ lib, 
>>>>> so I am using use_custom_libcxx=false,
>>>>> however I am seeing linking errors related to undefined symbols on 
>>>>> debug builds like:
>>>>>
>>>>> [1797/2086] LINK(DLL) v8.dll v8.dll.lib v8.dll.pdb
>>>>> FAILED: v8.dll v8.dll.lib v8.dll.pdb 
>>>>> C:/Code/vcpkg/buildtrees/v8/src/epot_tools-f6c91d5fca/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe
>>>>>  
>>>>> ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 
>>>>> False link.exe /nologo /IMPLIB:./v8.dll.lib /DLL /OUT:./v8.dll 
>>>>> /PDB:./v8.dll.pdb @./v8.dll.rsp
>>>>> class-verifiers-tq.obj : error LNK2019: unresolved external symbol 
>>>>> "public: class v8::internal::TNode<struct v8::internal::BoolT> __cdecl 
>>>>> v8::internal::TorqueGeneratedExportedMacrosAssembler::IsFastJSArray(class 
>>>>> v8::internal::TNode<class v8::internal::Object>,class 
>>>>> v8::internal::TNode<class v8::internal::Context>)" 
>>>>> (?IsFastJSArray@TorqueGeneratedExportedMacrosAssembler@internal@v8@@QEAA?AV?$TNode@UBoolT@internal@v8@@@23@V?$TNode@VObject@internal@v8@@@23@V?$TNode@VContext@internal@v8@@@23@@Z)
>>>>>  
>>>>> referenced in function "public: class v8::internal::TNode<class 
>>>>> v8::internal::JSArray> __cdecl 
>>>>> v8::internal::CodeStubAssembler::TaggedToFastJSArray(class 
>>>>> v8::internal::TNode<class v8::internal::Context>,class 
>>>>> v8::internal::TNode<class v8::internal::Object>,class 
>>>>> v8::internal::compiler::CodeAssemblerLabel *)" 
>>>>> (?TaggedToFastJSArray@CodeStubAssembler@internal@v8@@QEAA?AV?$TNode@VJSArray@internal@v8@@@23@V?$TNode@VContext@internal@v8@@@23@V?$TNode@VObject@internal@v8@@@23@PEAVCodeAssemblerLabel@compiler@23@@Z)
>>>>>
>>>>> There's 75 symbols missing in total, all in class-verifiers-tq.obj, I 
>>>>> can post the rest if needed, but hopefully this will give you an idea.
>>>>>
>>>>> On release builds there is only one undefined symbol: void __cdecl 
>>>>> v8::internal::FixedArray::set(int,class v8::internal::Smi), which I 
>>>>> believe 
>>>>> should be in fixed-array-tq-csa.obj,
>>>>> but it is not there. There are 2 overrides right next to its 
>>>>> definition in fixed-array-inl.h that do seem to exist in the object file 
>>>>> but this one isn't.
>>>>>
>>>>> here is the error output:
>>>>>
>>>>> ninja: Entering directory `out\x64.release'
>>>>> [1/298] LINK mksnapshot.exe mksnapshot.exe.pdb
>>>>> FAILED: mksnapshot.exe mksnapshot.exe.pdb
>>>>> C:/Code/vcpkg/buildtrees/v8/src/epot_tools-f6c91d5fca/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe
>>>>>  
>>>>> ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x64 
>>>>> False link.exe /nologo /OUT:./mksnapshot.exe /PDB:./mksnapshot.exe.pdb 
>>>>> @./mksnapshot.exe.rsp
>>>>> exported-macros-assembler-tq.obj : error LNK2019: unresolved external 
>>>>> symbol "public: void __cdecl v8::internal::FixedArray::set(int,class 
>>>>> v8::internal::Smi)" (?set@FixedArray@internal@v8@@QEAAXHVSmi@23@@Z) 
>>>>> referenced in function "protected: void __cdecl 
>>>>> v8::internal::OrderedHashTable<class 
>>>>> v8::internal::OrderedHashMap,2>::SetNumberOfBuckets(int)" 
>>>>> (?SetNumberOfBuckets@?$OrderedHashTable@VOrderedHashMap@internal@v8@@$01@internal@v8@@IEAAXH@Z)
>>>>>
>>>>> .\mksnapshot.exe : fatal error LNK1120: 1 unresolved externals
>>>>>
>>>>>
>>>>> Is there something I can patch to make this work? is this a known issue?
>>>>>
>>>>> Also, is there a way to add a debug postfix/suffix like "d" to debug 
>>>>> libraries?
>>>>>
>>>>> Thanks in advance!
>>>>>
>>>> -- 
>>>> -- 
>>>> 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/b214e6f1-722b-4c8d-b466-9b6900b437c7o%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/v8-users/b214e6f1-722b-4c8d-b466-9b6900b437c7o%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/CABexdQ5Y4bj8wNUt7OPwAJg1O0sg%3DkKtn%3DD_4WZS_Sus6Rr5mw%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/v8-users/CABexdQ5Y4bj8wNUt7OPwAJg1O0sg%3DkKtn%3DD_4WZS_Sus6Rr5mw%40mail.gmail.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/0baa6a8b-ea7a-47d6-9857-1412b6ffeff0o%40googlegroups.com.

Reply via email to