Hi Zac, thanks for the quick reply!

Here's what I see in library:

$ objdump -T /opt/libv8-6.5/lib/libv8_libplatform.so  | grep NewDefault
000000000000a850 g    DF .text    000000000000012e  Base       
 
_ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingENSt3__110unique_ptrINS_17TracingControllerENS3_14default_deleteIS5_EEEE


and this is the error I get later when get php-v8 compiled and try to load:

_ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingESt10unique_ptrINS_17TracingControllerESt14default_deleteIS4_EE

As you see, they differs and it looks like I missed something, but couldn't 
grasp what and it looks like this is the cause of 

/home/vagrant/php-v8/scripts/test_v8/hello_world.cpp:21: undefined 
reference to `v8::platform::NewDefaultPlatform(int, 
v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, 
std::unique_ptr<v8::TracingController, 
std::default_delete<v8::TracingController> >)'

error too.

Happy New Year!
Bogdan


On Monday, January 1, 2018 at 6:47:13 AM UTC+2, Zac Hansen wrote:
>
> If you look at the symbols in your libs is it in there anywhere?
>
> On Saturday, December 30, 2017 at 10:01:28 AM UTC-8, Bogdan Padalko wrote:
>>
>> Thanks for quick reply! Unfortunately, it's the same. I ended up with 
>> hello world example after to trying out to use NewDefaultPlatform with 
>> php-v8 (
>> https://github.com/pinepain/php-v8/blob/53a562e10c23e5f835b2ccdb20967f9c4aef529e/src/php_v8_a.cc#L34),
>>  
>> which yield me there
>>
>> /home/vagrant/.phpbrew/php/7.2-debug/bin/php: symbol lookup error: /home/
>> vagrant/php-v8/modules/v8.so: undefined symbol: 
>> _ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingESt10unique_ptrINS_17TracingControllerESt14default_deleteIS4_EE
>>
>> With CreateDefaultPlatform it works just fine, and there was no other 
>> changes to sources except of using v8 6.5.116 and using NewDefaultPlatform. 
>> Bare 6.5.116 with CreateDefaultPlatform works fine.
>>
>>
>> On Saturday, December 30, 2017 at 7:28:25 PM UTC+2, Ben Noordhuis wrote:
>>>
>>> On Sat, Dec 30, 2017 at 5:54 PM, Bogdan Padalko <zaq17...@gmail.com> 
>>> wrote: 
>>> > Hi! 
>>> > 
>>> > I'm trying to adapt changes from 
>>> > 
>>> https://github.com/v8/v8/commit/ffee558e14e28fc8b1f9a3c10ea3615e0d686c7b 
>>> to 
>>> > replace CreateDefaultPlatform with NewDefaultPlatform calls, however, 
>>> for 
>>> > some reason I'm getting 
>>> > 
>>> > /home/vagrant/php-v8/scripts/test_v8/hello_world.cpp:21: undefined 
>>> reference 
>>> > to `v8::platform::NewDefaultPlatform(int, 
>>> v8::platform::IdleTaskSupport, 
>>> > v8::platform::InProcessStackDumping, 
>>> std::unique_ptr<v8::TracingController, 
>>> > std::default_delete<v8::TracingController> >)' 
>>> > 
>>> > error with the following code: 
>>> > 
>>> > #include <v8.h> 
>>> > #include <libplatform/libplatform.h> 
>>> > 
>>> > #include <stdlib.h> 
>>> > #include <string.h> 
>>> > 
>>> > using namespace v8; 
>>> > 
>>> > void weak_callback(const 
>>> v8::WeakCallbackInfo<v8::Persistent<v8::String>>& 
>>> > data) { 
>>> >   printf("Weak callback called\n"); 
>>> >   data.GetParameter()->Reset(); 
>>> > } 
>>> > 
>>> > int main(int argc, char* argv[]) { 
>>> >   // Initialize V8. 
>>> >   v8::V8::InitializeICU(); 
>>> > //  v8::Platform *platform = v8::platform::CreateDefaultPlatform(); 
>>> > //  v8::V8::InitializePlatform(platform); 
>>> > 
>>> >   std::unique_ptr<v8::Platform> platform = 
>>> > v8::platform::NewDefaultPlatform(); 
>>> >   v8::V8::InitializePlatform(platform.get()); 
>>> > 
>>> >   V8::Initialize(); 
>>> > 
>>> >   v8::Isolate::CreateParams create_params; 
>>> >   create_params.array_buffer_allocator = 
>>> > v8::ArrayBuffer::Allocator::NewDefaultAllocator(); 
>>> > 
>>> >   // Create a new Isolate and make it the current one. 
>>> >   Isolate* isolate = v8::Isolate::New(create_params); 
>>> > 
>>> >   v8::Persistent<v8::String> test; 
>>> > 
>>> >   { 
>>> >     Isolate::Scope isolate_scope(isolate); 
>>> > 
>>> >     // Create a stack-allocated handle scope. 
>>> >     HandleScope handle_scope(isolate); 
>>> > 
>>> >     // Create a new context. 
>>> >     Local<Context> context = Context::New(isolate); 
>>> > 
>>> >     // Enter the context for compiling and running the hello world 
>>> script. 
>>> >     Context::Scope context_scope(context); 
>>> > 
>>> > 
>>> >     test.Reset(isolate, String::NewFromUtf8(isolate, "Hello' + ', 
>>> > World!'")); 
>>> >     test.SetWeak(&test, weak_callback, 
>>> v8::WeakCallbackType::kParameter); 
>>> > 
>>> > 
>>> >     // Create a string containing the JavaScript source code. 
>>> >     Local<String> source = String::NewFromUtf8(isolate, "(2+2*2) + ' ' 
>>> + 
>>> > 'Hello' + ', World!'"); 
>>> > 
>>> >     // Compile the source code. 
>>> >     Local<Script> script = Script::Compile(source); 
>>> > 
>>> >     // Run the script to get the result. 
>>> >     Local<Value> result = script->Run(); 
>>> > 
>>> >     // Convert the result to an UTF8 string and print it. 
>>> >     String::Utf8Value utf8(isolate, result); 
>>> >     printf("%s\n", *utf8); 
>>> >   } 
>>> > 
>>> >   isolate->LowMemoryNotification(); 
>>> > 
>>> > 
>>> >   // Dispose the isolate and tear down V8. 
>>> >   isolate->Dispose(); 
>>> >   V8::Dispose(); 
>>> >   V8::ShutdownPlatform(); 
>>> > 
>>> >   return 0; 
>>> > } 
>>> > 
>>> > build script: 
>>> > 
>>> > #!/bin/bash 
>>> > 
>>> > ROOT=/opt/libv8-6.5 
>>> > LIB_DIR=$ROOT/lib/ 
>>> > 
>>> > SRC_DIR=$ROOT 
>>> > INCLUDE_DIR=$ROOT/include 
>>> > 
>>> > set -x 
>>> > 
>>> > g++ -std=c++14 hello_world.cpp -o hello_world \ 
>>> >  -g \ 
>>> >  -O2 \ 
>>> >  -std=c++11 \ 
>>> >  -I$INCLUDE_DIR \ 
>>> >  -L$LIB_DIR \ 
>>> >  -Wl,-rpath,$LIB_DIR \ 
>>> >  -lv8_libbase \ 
>>> >  -lv8_libplatform \ 
>>> >  -lv8 \ 
>>> >  -lpthread 
>>> > 
>>> > I use v8 build with the following params: 
>>> > 
>>> > gn gen out.gn/x64.release --args="is_debug=false 
>>> is_component_build=true 
>>> > v8_use_external_startup_data=false" 
>>> > ninja -v d8 -C out.gn/x64.release 
>>> > 
>>> > Host is x64 Ubuntu 16.04, libv8 installed from my pinepain/libv8-6.5 
>>> PPA 
>>> > (https://launchpad.net/~pinepain/+archive/ubuntu/libv8-6.5) 
>>> > 
>>> > I'd really appreciate if anybody give it a look and provide some 
>>> suggestions 
>>> > as after spending two days with this I think I just missing something 
>>> very 
>>> > simple and obvious. 
>>> > 
>>> > Regards, 
>>> > Bogdan 
>>>
>>> It sounds like a link order issue.  What happens when you put `-o 
>>> hello_world` last? 
>>>
>>

-- 
-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to