diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog index a8a925f31828f..a5cfeb4c43334 100644 --- a/Source/JavaScriptCore/ChangeLog +++ b/Source/JavaScriptCore/ChangeLog @@ -1,3 +1,14 @@ +2014-08-19 Magnus Granberg + + TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586) + https://bugs.webkit.org/show_bug.cgi?id=70610 + + Reviewed by Darin Adler. + + Setup %ebx so we can use the plt. + + * jit/ThunkGenerators.cpp: + 2014-10-06 Philip Chimento webkit-gtk fails to link JavaScriptCore, missing symbols add_history and readline diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp index 11875ccbfcf28..0f6ce2ddf8c92 100644 --- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp +++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp @@ -619,6 +619,30 @@ double jsRound(double d) } \ static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; +#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__) +#define defineUnaryDoubleOpWrapper(function) \ + asm( \ + ".text\n" \ + ".globl " SYMBOL_STRING(function##Thunk) "\n" \ + HIDE_SYMBOL(function##Thunk) "\n" \ + SYMBOL_STRING(function##Thunk) ":" "\n" \ + "pushl %ebx\n" \ + "subl $20, %esp\n" \ + "movsd %xmm0, (%esp) \n" \ + "call __x86.get_pc_thunk.bx\n" \ + "addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \ + "call " GLOBAL_REFERENCE(function) "\n" \ + "fstpl (%esp) \n" \ + "movsd (%esp), %xmm0 \n" \ + "addl $20, %esp\n" \ + "popl %ebx\n" \ + "ret\n" \ + );\ + extern "C" { \ + MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ + } \ + static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; + #elif CPU(X86) && COMPILER(GCC) && (OS(DARWIN) || OS(LINUX)) #define defineUnaryDoubleOpWrapper(function) \ asm( \ diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog index 8490ade44224e..6faaa2020d924 100644 --- a/Source/WTF/ChangeLog +++ b/Source/WTF/ChangeLog @@ -1,3 +1,14 @@ +2014-08-19 Magnus Granberg + + TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586) + https://bugs.webkit.org/show_bug.cgi?id=70610 + + Reviewed by Darin Adler. + + Add PLT if we're building with PIC. + + * wtf/InlineASM.h: + 2015-04-07 Carlos Garcia Campos Unreviewed. Fix the build with newer GLib. diff --git a/Source/WTF/wtf/InlineASM.h b/Source/WTF/wtf/InlineASM.h index edb659c03d51e..0ecc8824debb1 100644 --- a/Source/WTF/wtf/InlineASM.h +++ b/Source/WTF/wtf/InlineASM.h @@ -46,6 +46,8 @@ #define GLOBAL_REFERENCE(name) #name "@plt" #elif CPU(X86) && COMPILER(MINGW) #define GLOBAL_REFERENCE(name) "@" #name "@4" +#elif OS(LINUX) && CPU(X86) && defined(__PIC__) +#define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) "@plt" #else #define GLOBAL_REFERENCE(name) SYMBOL_STRING(name) #endif