Thanks for your reply! No, I'm not using -flat_namespace anywhere (and the 
default is afaik -twolevel_namespace). I Tried linking to V8 statically, 
and with 7.8 non-monolith static libs it worked, but I tried again with 7.2 
monolithic and it calls into libNode.dylib and crashes. I'll try 7.2 with 
non-monolithic build but even if it works it seems very unstable.

Is electron built perhaps with flat_namespace? I'm using an old version 
(1.8, its 2.5 years old).

I'm running out of ideas on how to work around this...

2019. november 22., péntek 3:18:13 UTC+1 időpontban Ben Noordhuis a 
következőt írta:
>
> On Thu, Nov 21, 2019 at 6:10 PM Zoltan B <zben...@gmail.com <javascript:>> 
> wrote: 
> > 
> > Hi! 
> > 
> > I'm running an electron app, that loads native application (using ffi) 
> that renders content into a canvas in electron. This native C++ code has an 
> embedded V8 inside it. 
> > I'm compiling V8 into dynamic libraries (.dylib files) 
> (use_component_build is set to true). 
> > 
> > My issue is that the V8 inside Electron seems to clash with my V8 
> instance (they are not the same version), but only on macOS. 
> > If you look at the call-stack below of the segmentation fault, you can 
> see that it begins in libv8.dylib, but ends up somehow in libnode.dylib 
> which I can't really explain. 
> > 
> > Thread 16 Crashed: 
> > 0 libnode.dylib 0x0000000108306911 0x107c70000 + 6908177 
> > 1 libnode.dylib 0x000000010830609c void 
> v8::internal::LookupIterator::Start<false>() + 60 
> > 2 libv8.dylib 0x0000000118bbc354 
> v8::internal::JSObject::SetOwnPropertyIgnoreAttributes(v8::internal::Handle<v8::internal::JSObject>,
>  
> v8::internal::Handle<v8::internal::Name>, 
> v8::internal::Handle<v8::internal::Object>, 
> v8::internal::PropertyAttributes) + 164 (js-objects.cc:3148) 
> > 3 libv8.dylib 0x0000000118a9bc06 
> v8::internal::Genesis::GetThrowTypeErrorIntrinsic() + 118 (handles.h:144) 
> > 4 libv8.dylib 0x0000000118a9c13d 
> v8::internal::Genesis::AddRestrictedFunctionProperties(v8::internal::Handle<v8::internal::JSFunction>)
>  
> + 29 (bootstrapper.cc:1109) 
> > 5 libv8.dylib 0x0000000118ab1de5 
> v8::internal::Genesis::Genesis(v8::internal::Isolate*, 
> v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, 
> v8::Local<v8::ObjectTemplate>, unsigned long, 
> v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 1269 
> (bootstrapper.cc:5446) 
> > 6 libv8.dylib 0x0000000118a9b209 
> v8::internal::Bootstrapper::CreateEnvironment(v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>,
>  
> v8::Local<v8::ObjectTemplate>, v8::ExtensionConfiguration*, unsigned long, 
> v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 89 
> (bootstrapper.cc:5374) 
> > 7 libv8.dylib 0x00000001188862aa v8::NewContext(v8::Isolate*, 
> v8::ExtensionConfiguration*, v8::MaybeLocal<v8::ObjectTemplate>, 
> v8::MaybeLocal<v8::Value>, unsigned long, 
> v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 1722 
> (api.cc:5697) 
> > 8 libv8.dylib 0x00000001188866fa v8::Context::New(v8::Isolate*, 
> v8::ExtensionConfiguration*, v8::MaybeLocal<v8::ObjectTemplate>, 
> v8::MaybeLocal<v8::Value>, v8::DeserializeInternalFieldsCallback, 
> v8::MicrotaskQueue*) + 42 (api.cc:5856) 
> > 
> > 
> > 
> > Is it possible that when libv8.dylib loads the subsequent .dylib files 
> with dlopen() (such as libv8_platform.dylib etc.) that dlopen somehow 
> fetches the V8 symbols inside the libnode.dylib? 
> > 
> > Electron version I'm using: 1.8.8 
> > V8 versions I'm using in my app: 7.2 (I tried it with 7.8 too but with 
> the same results) 
> > 
> > Could anyone help me out how to avoid this? 
>
> Since you're only seeing this on macOS: is anything linked with 
> -flat_namespace? 
>

-- 
-- 
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/d4e8c529-4baf-4602-a763-6892eaa04c05%40googlegroups.com.

Reply via email to