Unreviewed. Changes in r161686 are exposing a bug in GCC where the global .cfi_startp...
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Jan 2014 09:23:12 +0000 (09:23 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Jan 2014 09:23:12 +0000 (09:23 +0000)
is not inserted early enough into the generated assembler code when building in debug mode, causing
compilation failures on ports using the GCC compilers. To work around the problem, only utilize the
OFFLINE_ASM_* macros that use .cfi_ directives when compiling with Clang.

* llint/LowLevelInterpreter.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@161866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/llint/LowLevelInterpreter.cpp

index c78401b..1f4bd65 100644 (file)
@@ -1,3 +1,12 @@
+2014-01-13  Zan Dobersek  <zdobersek@igalia.com>
+
+        Unreviewed. Changes in r161686 are exposing a bug in GCC where the global .cfi_startproc directive
+        is not inserted early enough into the generated assembler code when building in debug mode, causing
+        compilation failures on ports using the GCC compilers. To work around the problem, only utilize the
+        OFFLINE_ASM_* macros that use .cfi_ directives when compiling with Clang.
+
+        * llint/LowLevelInterpreter.cpp:
+
 2014-01-12  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r161840.
index 9296b91..48148c6 100644 (file)
@@ -522,7 +522,7 @@ JSValue CLoop::execute(CallFrame* callFrame, Opcode entryOpcode, bool isInitiali
 //
 
 // These are for building an interpreter from generated assembly code:
-#if CPU(X86_64)
+#if CPU(X86_64) && COMPILER(CLANG)
 #define OFFLINE_ASM_BEGIN   asm ( \
     ".cfi_startproc\n"
 
@@ -545,7 +545,7 @@ JSValue CLoop::execute(CallFrame* callFrame, Opcode entryOpcode, bool isInitiali
     ".thumb\n"                                   \
     ".thumb_func " THUMB_FUNC_PARAM(label) "\n"  \
     SYMBOL_STRING(label) ":\n"
-#elif CPU(X86_64)
+#elif CPU(X86_64) && COMPILER(CLANG)
 #define OFFLINE_ASM_GLOBAL_LABEL(label)         \
     ".text\n"                                   \
     ".globl " SYMBOL_STRING(label) "\n"         \