There is an issue reported for this: http://code.google.com/p/v8/issues/detail?id=1016 -- Vyacheslav Egorov
On Wed, Jan 5, 2011 at 6:17 PM, Paweł Hajdan, Jr. <[email protected]> wrote: > I'm working on making Gentoo Linux's nodejs package compile against system > v8: http://bugs.gentoo.org/show_bug.cgi?id=348609 > Passing --shared-v8 to node results in the following error (full log > attached to the bug above): > > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:635: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataType()' > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:635: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataType()' > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:635: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataType()' > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:635: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataType()' > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:635: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataType()' > default/src/node_buffer_3.o: In function > `node::Buffer::Data(v8::Handle<v8::Object>)': > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:140: > undefined reference to `v8::Object::GetIndexedPropertiesExternalArrayData()' > default/src/node_buffer_3.o: In function > `node::Buffer::HasInstance(v8::Handle<v8::Value>)': > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:635: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataType()' > default/src/node_buffer_3.o: In function > `node::Buffer::Length(v8::Handle<v8::Object>)': > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:147: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataLength()' > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:147: > undefined reference to > `v8::Object::GetIndexedPropertiesExternalArrayDataLength()' > default/src/node_buffer_3.o: In function > `node::Buffer::Data(v8::Handle<v8::Object>)': > /var/tmp/portage/net-libs/nodejs-0.3.1/work/node-v0.3.1/build/../src/node_buffer.cc:140: > undefined reference to `v8::Object::GetIndexedPropertiesExternalArrayData()' > collect2: ld returned 1 exit status > > nodejs builds its bundled v8 with visibility=default, which also "fixes" the > problem for shared build. However, I'm not sure if that's a good idea, so I > created a patch to make those symbols exported instead: > http://bugs.gentoo.org/attachment.cgi?id=258953 > > --- include/v8.h.orig 2011-01-05 17:57:32.000000000 +0100 > +++ include/v8.h 2011-01-05 17:57:58.000000000 +0100 > @@ -1647,9 +1647,9 @@ > ExternalArrayType array_type, > int number_of_elements); > bool HasIndexedPropertiesInExternalArrayData(); > - void* GetIndexedPropertiesExternalArrayData(); > - ExternalArrayType GetIndexedPropertiesExternalArrayDataType(); > - int GetIndexedPropertiesExternalArrayDataLength(); > + V8EXPORT void* GetIndexedPropertiesExternalArrayData(); > + V8EXPORT ExternalArrayType GetIndexedPropertiesExternalArrayDataType(); > + V8EXPORT int GetIndexedPropertiesExternalArrayDataLength(); > > V8EXPORT static Local<Object> New(); > static inline Object* Cast(Value* obj); > > What do you think? Is that the correct solution, or maybe should nodejs stop > using those non-exported calls? > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
