No, because of two things: 1. This is an additional requirement to run make with (nobody wants to know these requirements when they build your library). 2. It doesn't work either.
I have my library's gyp-file. It depends on V8's gyp-file. I generate my library's Makefiles with GYP (I use configure script similar to Node.JS). And when I type `CFLAGS="-fPIC" CXXFLAGS="-fPIC" make` in my library to build everything, these cflags are not being passed to V8 compile commands. -- Marat On Thursday, April 17, 2014 5:06:27 PM UTC+4, Jakob Kummerow wrote: > > On Thu, Apr 17, 2014 at 2:57 PM, Peter Olsson > <pe...@olssononline.se<javascript:> > > wrote: > >> You can also specify flags when building, I'm doing it like this in one >> project. It works as expected. >> >> CFLAGS="-fPIC" CXXFLAGS="-fPIC" make native >> >> I think this is easy enough that we don't need to add a GYP option. > > Den onsdagen den 16:e april 2014 kl. 23:56:38 UTC+2 skrev Marat Abdullin: >> >> No positive result. >>> >>> I've found a dirty hack to enable PIC. >>> And I've submitted a patch that allows to force PIC to V8. I really hope >>> it will be accepted. >>> >>> -- >>> Marat >>> >>> On Wednesday, April 16, 2014 9:35:13 PM UTC+4, Jakob Kummerow wrote: >>>> >>>> Try depending on 'v8_base.<(v8_target_arch)' and 'v8_snapshot' instead. >>>> The 'v8' target is just a meta target, you can probably fold everything it >>>> does into your own custom shared library (those dependencies being the >>>> most >>>> important bits). >>>> >>>> >>>> On Wed, Apr 16, 2014 at 12:29 PM, Marat Abdullin >>>> <dak...@brokenpipe.ru>wrote: >>>> >>>>> I use GYP for my entire project and it doesn't work. >>>>> >>>>> I add V8 using: >>>>> "dependencies": [ >>>>> "deps/v8/tools/gyp/v8.gyp:v8", >>>>> ] >>>>> >>>>> with `component` set to `static_library` (and my library's target type >>>>> is `shared_library`). >>>>> >>>>> Here is an example of compiler call (I use `make V=1` to get this) >>>>> when it builds V8: >>>>> >>>>> g++ '-DV8_TARGET_ARCH_X64' '-DENABLE_DEBUGGER_SUPPORT' >>>>> '-DV8_USE_DEFAULT_PLATFORM' '-DENABLE_HANDLE_ZAPPING' -Ideps/v8/src >>>>> -fno-strict-aliasing -m64 -fdata-sections -ffunction-sections -O3 -MMD >>>>> -MF >>>>> out/Release/.deps/out/Release/obj.host/v8_base.x64/deps/v8/src/accessors.o.d.raw >>>>> >>>>> -c -o out/Release/obj.host/v8_base.x64/deps/v8/src/accessors.o >>>>> deps/v8/src/accessors.cc >>>>> No -fPIC (and quick V8's gyp-files examination shows that -fPIC is >>>>> being added only in case `component` is set to `shared_library`). >>>>> >>>>> -- >>>>> Marat >>>>> >>>>> >>>>> On Wednesday, April 16, 2014 12:23:29 PM UTC+4, Jakob Kummerow wrote: >>>>> >>>>>> If you use GYP for your entire project, things should "just work". >>>>>> Otherwise you'll probably have to modify V8's .gyp files. I'm not sure >>>>>> how, >>>>>> you'll have to find that out for yourself. Try adding -fPIC to the >>>>>> 'cflags' >>>>>> lists in build/toolchain.gypi. >>>>>> >>>>>> >>>>>> On Wed, Apr 16, 2014 at 1:45 AM, Marat Abdullin <dak...@brokenpipe.ru >>>>>> > wrote: >>>>>> >>>>>>> This thing is pretty old but I still have the same problem. >>>>>>> Is there any fix? >>>>>>> >>>>>>> I'm building a dynamic library and I'm statically linking V8 >>>>>>> (version 3.24.40) in it. On OSX everything is linking just fine, but on >>>>>>> Linux I get: >>>>>>> >>>>>>> /usr/bin/ld: out/Release/obj.target/deps/v8 >>>>>>> /tools/gyp/../../../../v8_base.x64/deps/v8/src/accessors.o: >>>>>>> relocation R_X86_64_32S against `vtable for v8::internal::StackFrame' >>>>>>> can >>>>>>> not be used when making a shared object; recompile with -fPIC >>>>>>> >>>>>>> out/Release/obj.target/deps/v8/tools/gyp/../../../../v8_base >>>>>>> .x64/deps/v8/src/accessors.o: could not read symbols: Bad value >>>>>>> >>>>>>> collect2: ld returned 1 exit status >>>>>>> >>>>>>> So, I need a way to tell V8 to build static library with -fPIC. Or >>>>>>> is there any other fix for this? >>>>>>> >>>>>>> -- >>>>>>> Marat >>>>>>> >>>>>>> On Monday, July 2, 2012 4:33:02 AM UTC+4, Charles Lowell wrote: >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I'm trying to build a shared object and link in the static v8 >>>>>>>> library. This works fine for me on OSX, but on Linux I get the >>>>>>>> following >>>>>>>> error: >>>>>>>> >>>>>>>> /usr/bin/ld: /tmp/build_321giz8disep/vendor >>>>>>>> /v8/out/x64.release/obj.target/v8_base/src/api.o: relocation >>>>>>>> R_X86_64_32S against `vtable for v8::ScriptData' can not be used when >>>>>>>> making a shared object; recompile with -fPIC >>>>>>>> >>>>>>>> /tmp/build_321giz8disep/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a: >>>>>>>> >>>>>>>> could not read symbols: Bad value >>>>>>>> collect2: ld returned 1 exit status >>>>>>>> >>>>>>>> Is there a way to tell GYP to build a static v8 library with -fPIC? >>>>>>>> Is there a way to do this without patching one of the gypfiles? >>>>>>>> >>>>>>>> cheers, >>>>>>>> Charles >>>>>>>> >>>>>>> -- >>>>>>> -- >>>>>>> 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-users+u...@googlegroups.com. >>>>>>> >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>>> -- >>>>> 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-users+u...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >> -- >> v8-users mailing list >> v8-u...@googlegroups.com <javascript:> >> 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+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- -- 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.