RESOLVED FIXED 127776
Fix linking failure on EFL and GTK for the jsCStack branch merge
https://bugs.webkit.org/show_bug.cgi?id=127776
Summary Fix linking failure on EFL and GTK for the jsCStack branch merge
Csaba Osztrogonác
Reported 2014-01-28 06:53:06 PST
After adding the missing files to the cmake buildsystem and removed the dead code I managed to build EFLWebKit. But I got linking failure with SHARED_CORE=ON build. Unfortunately it is necessary to be able run layout tests. (https://bugs.webkit.org/show_bug.cgi?id=80683) Additionally I got the same linking failure with WebKitGTK build. GTK build failure: ------------------- /usr/bin/ld: Source/JavaScriptCore/llint/.libs/libjavascriptcoregtk_3_0_la-LowLevelInterpreter.o: relocation R_X86_64_PC32 against symbol `llint_throw_stack_overflow_error' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value EFL build failure with SHARED_CORE=ON: --------------------------------------- Linking CXX shared library ../../lib/libjavascriptcore_efl.so /usr/bin/ld: CMakeFiles/JavaScriptCore.dir/llint/LowLevelInterpreter.cpp.o: relocation R_X86_64_PC32 against symbol `llint_throw_stack_overflow_error' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value
Attachments
Csaba Osztrogonác
Comment 1 2014-01-28 07:30:09 PST
Additional info: The build fails on GTK always and fails on EFL bots, because ENABLE_DRT=1 environment variable forces the SHARED_CORE=ON build.
Mark Hahnenberg
Comment 2 2014-01-28 08:33:41 PST
After reading a little bit about this error, it seems that gcc requires that code linked into a shared library should, by default, be compiled with -fpic due to the constraints of the small code model and the size of the address space on 64-bit platforms. I can see two obvious solutions: (1) Use -fpic to enable position independent code when building shared libraries. (2) Use -mcmodel=large to enable the large code model when building shared libraries. Either one of these should work.
Mark Hahnenberg
Comment 3 2014-01-28 08:36:44 PST
(In reply to comment #2) > After reading a little bit about this error, it seems that gcc requires that code linked into a shared library should, by default, be compiled with -fpic due to the constraints of the small code model and the size of the address space on 64-bit platforms. I can see two obvious solutions: > > (1) Use -fpic to enable position independent code when building shared libraries. > (2) Use -mcmodel=large to enable the large code model when building shared libraries. > > Either one of these should work. This also might be the result of a lack of proper extern-ing for these symbols. Let me try that first.
Csaba Osztrogonác
Comment 4 2014-01-28 09:20:11 PST
It seems https://bugs.webkit.org/show_bug.cgi?id=127782 solved the linking problem. Thanks for the quick fix.
Note You need to log in before you can comment on or make changes to this bug.