It seems 7.5.288.22 didn't fix this issue. Do somebody know if there is a 
plan to fix it?

On Wednesday, February 20, 2019 at 5:41:58 PM UTC+8, Darin Dimitrov wrote:
>
> Turns out that V8 is building against a custom STL passing 
> the _LIBCPP_ABI_UNSTABLE flag. So in order to build my final executable I 
> had to use this same STL instead of the default libc++_static.a library 
> provided by the NDK.
>
> On Wednesday, February 13, 2019 at 9:24:34 AM UTC+2, Darin Dimitrov wrote:
>>
>> Tom, thanks for the reply. The DefaultPlatform method was just an 
>> example. Looking at the public API in v8.h 
>> <https://github.com/v8/v8/blob/master/include/v8.h> there are quite a 
>> lot of references to C++ objects from the standard library and I am getting 
>> tons of those similar linker errors. That's what made me think that I must 
>> be doing something wrong.
>>
>> I managed to successfully compile and link if I manually modify 
>> _LIBCPP_ABI_NAMESPACE in the "third_party/libc++/trunk/include/__config" 
>> include file. But I feel that it should somehow be possible to specify the 
>> libc++ location when building v8 so that it uses the one from the NDK.
>>
>> On Tuesday, February 12, 2019 at 10:15:04 PM UTC+2, Tom Anderson wrote:
>>>
>>> Usually C++ objects should not be passed over library boundaries.  In 
>>> this case though, the issue could be fixed by adding a wrapper for 
>>> v8::platform::DefaultPlatform::DefaultPlatform() that takes a C-style 
>>> pointer instead of a unique_ptr.
>>>
>>> I'm also not sure if v8_libplatform is meant to be redistributed in this 
>>> way, though the V8 team can say for sure.
>>>
>>> On Tuesday, February 12, 2019 at 8:05:19 AM UTC-8, Darin Dimitrov wrote:
>>>>
>>>> Further narrowing this down.
>>>>
>>>> In V8 *7.2*, libc++ is taken from the NDK: 
>>>>
>>>> -isystem../../third_party/android_ndk/sources/cxx-stl/llvm-libc++/
>>>> include
>>>> -isystem../../third_party/android_ndk/sources/cxx-stl/llvm-libc++abi/
>>>> include
>>>>
>>>> whereas in V8 *7.3*, a different libc++ is used:
>>>>
>>>> -isystem../../buildtools/third_party/libc++/trunk/include
>>>> -isystem../../buildtools/third_party/libc++abi/trunk/include
>>>>
>>>> And the difference between the two versions is that the one from the 
>>>> NDK defines the following std namespace override:
>>>>
>>>> #ifndef _LIBCPP_ABI_NAMESPACE
>>>> # define _LIBCPP_ABI_NAMESPACE _LIBCPP_CONCAT(__ndk,_LIBCPP_ABI_VERSION)
>>>> #endif
>>>>
>>>> while the custom one uses this:
>>>>
>>>> #ifndef _LIBCPP_ABI_NAMESPACE
>>>> # define _LIBCPP_ABI_NAMESPACE _LIBCPP_CONCAT(__,_LIBCPP_ABI_VERSION)
>>>> #endif
>>>>
>>>> So the question is, what would be the proper gn arguments to link 
>>>> against libc++ from the NDK?
>>>>
>>>> I have tried setting use_custom_libcxx=false but in this case no 
>>>> -isystem is specified and the build fails as it cannot find some common 
>>>> includes such as <memory> and <functional>.
>>>>
>>>> On Monday, February 11, 2019 at 6:09:49 PM UTC+2, Darin Dimitrov wrote:
>>>>>
>>>>> I was able to bisect the issue to the following commit in which the V8 
>>>>> DEPS were updated: 
>>>>> https://chromium.googlesource.com/v8/v8/+/843535b893968a89f98b295cd7b1b265ca2927c1
>>>>>
>>>>

-- 
-- 
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/a5f93451-c88f-48c7-8cc9-43f710316544%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to