Title: [203446] trunk
Revision
203446
Author
o...@webkit.org
Date
2016-07-20 00:30:51 -0700 (Wed, 20 Jul 2016)

Log Message

JSC JIT Broken on ARMv7 Traditional (without Thumb2)
https://bugs.webkit.org/show_bug.cgi?id=159880

Reviewed by Carlos Garcia Campos.

* Source/cmake/OptionsCommon.cmake: Use the BFD linker on ARM traditional because of a gold linker bug.

Modified Paths

Diff

Modified: trunk/ChangeLog (203445 => 203446)


--- trunk/ChangeLog	2016-07-20 06:23:13 UTC (rev 203445)
+++ trunk/ChangeLog	2016-07-20 07:30:51 UTC (rev 203446)
@@ -1,3 +1,12 @@
+2016-07-20  Csaba Osztrogonác  <o...@webkit.org>
+
+        JSC JIT Broken on ARMv7 Traditional (without Thumb2)
+        https://bugs.webkit.org/show_bug.cgi?id=159880
+
+        Reviewed by Carlos Garcia Campos.
+
+        * Source/cmake/OptionsCommon.cmake: Use the BFD linker on ARM traditional because of a gold linker bug.
+
 2016-07-18  Alexey Proskuryakov  <a...@apple.com>
 
         "make ARCHS=x86_64" fails to build

Modified: trunk/Source/cmake/OptionsCommon.cmake (203445 => 203446)


--- trunk/Source/cmake/OptionsCommon.cmake	2016-07-20 06:23:13 UTC (rev 203445)
+++ trunk/Source/cmake/OptionsCommon.cmake	2016-07-20 07:30:51 UTC (rev 203446)
@@ -69,10 +69,29 @@
 
 EXPOSE_VARIABLE_TO_BUILD(WTF_CPU_ARM64_CORTEXA53)
 
+set(ARM_TRADITIONAL_DETECTED FALSE)
+if (WTF_CPU_ARM)
+    set(ARM_THUMB2_TEST_SOURCE
+    "
+    #if !defined(thumb2) && !defined(__thumb2__)
+    #error \"Thumb2 instruction set isn't available\"
+    #endif
+    int main() {}
+   ")
+
+    include(CheckCXXSourceCompiles)
+    CHECK_CXX_SOURCE_COMPILES("${ARM_THUMB2_TEST_SOURCE}" ARM_THUMB2_DETECTED)
+    if (NOT ARM_THUMB2_DETECTED)
+        set(ARM_TRADITIONAL_DETECTED TRUE)
+        # See https://bugs.webkit.org/show_bug.cgi?id=159880#c4 for details.
+        message(STATUS "Disabling GNU gold linker, because it doesn't support ARM instruction set properly.")
+    endif ()
+endif ()
+
 # Use ld.gold if it is available and isn't disabled explicitly
 include(CMakeDependentOption)
 CMAKE_DEPENDENT_OPTION(USE_LD_GOLD "Use GNU gold linker" ON
-                       "NOT CXX_ACCEPTS_MFIX_CORTEX_A53_835769" OFF)
+                       "NOT CXX_ACCEPTS_MFIX_CORTEX_A53_835769;NOT ARM_TRADITIONAL_DETECTED" OFF)
 if (USE_LD_GOLD)
     execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
     if ("${LD_VERSION}" MATCHES "GNU gold")
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to