Bug#598956: On kfreebsd going into web pane segfaults Liferea.

Petr Salinger Petr.Salinger at seznam.cz
Thu Oct 7 06:00:46 UTC 2010


Hi,

given it has only problems on (kfreebsd-)i386, please could you try whether
patch bellow is sufficient to stop crash (instead of disabling JIT) ?

Only wild guess, though.

Petr


--- JavaScriptCore/jit/JITOpcodes.cpp
+++ JavaScriptCore/jit/JITOpcodes.cpp
@@ -165,7 +165,7 @@
       * stack pointer by the right amount after the call.
       */

-#if COMPILER(MSVC) || OS(LINUX)
+#if COMPILER(MSVC) || OS(LINUX) || defined(__GLIBC__)
  #if COMPILER(MSVC)
  #pragma pack(push)
  #pragma pack(4)
@@ -228,7 +228,7 @@
      storePtr(regT2, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, thisValue) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)));
      storePtr(regT3, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, thisValue) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)));

-#if COMPILER(MSVC) || OS(LINUX)
+#if COMPILER(MSVC) || OS(LINUX) || defined(__GLIBC__)
      // ArgList is passed by reference so is stackPointerRegister + 4 * sizeof(Register)
      addPtr(Imm32(OBJECT_OFFSETOF(NativeCallFrameStructure, result)), stackPointerRegister, X86Registers::ecx);

@@ -1689,7 +1689,7 @@
       * not the rest of the callframe so we need a nice way to ensure we increment the
       * stack pointer by the right amount after the call.
       */
-#if COMPILER(MSVC) || OS(LINUX)
+#if COMPILER(MSVC) || OS(LINUX) || defined(__GLIBC__)
      struct NativeCallFrameStructure {
        //  CallFrame* callFrame; // passed in EDX
          JSObject* callee;
@@ -1742,7 +1742,7 @@
      loadPtr(Address(regT1, -(int)sizeof(Register)), regT1);
      storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, thisValue)));

-#if COMPILER(MSVC) || OS(LINUX)
+#if COMPILER(MSVC) || OS(LINUX) || defined(__GLIBC__)
      // ArgList is passed by reference so is stackPointerRegister + 4 * sizeof(Register)
      addPtr(Imm32(OBJECT_OFFSETOF(NativeCallFrameStructure, result)), stackPointerRegister, X86Registers::ecx);







More information about the Pkg-webkit-maintainers mailing list