Просмотр исходного кода

xplat: fix lto.gold segfault debian

obastemur 9 лет назад
Родитель
Сommit
aa51164438
3 измененных файлов с 14 добавлено и 17 удалено
  1. 4 5
      CMakeLists.txt
  2. 10 11
      lib/CMakeLists.txt
  3. 0 1
      pal/src/CMakeLists.txt

+ 4 - 5
CMakeLists.txt

@@ -305,15 +305,14 @@ endif(CLR_CMAKE_PLATFORM_XPLAT)
 
 if (ENABLE_FULL_LTO_SH OR ENABLE_THIN_LTO_SH)
     if (CC_TARGET_OS_LINUX)
-        set(CC_LTO_ENABLED
-            -fuse-ld=gold
-            -Xlinker -plugin=${CHAKRACORE_BINARY_DIR}/../../cc-toolchain/build/lib/LLVMgold.so
-            )
+        set(CC_LTO_ENABLED -use-gold-plugin)
+        set(CC_LTO_ENABLED_C -c)
     endif()
 
     if (ENABLE_FULL_LTO_SH)
         unset(DENABLE_FULL_LTO_SH CACHE)
-        add_compile_options(-flto)
+        add_compile_options(-flto ${CC_LTO_ENABLED_C})
+
         if (CC_LTO_ENABLED)
             set(CC_LTO_ENABLED "${CC_LTO_ENABLED} -flto")
         endif()

+ 10 - 11
lib/CMakeLists.txt

@@ -45,23 +45,22 @@ else()
   endif()
 
   target_link_libraries(ChakraCoreStatic
-    ${CC_LTO_ENABLED}
     ${PTHREAD}
     "dl"
     )
 endif()
 
 target_include_directories (
-  ChakraCoreStatic PUBLIC
-  ${CMAKE_CURRENT_SOURCE_DIR}
-  ${CHAKRACORE_SOURCE_DIR}/lib/Backend
-  ${CHAKRACORE_SOURCE_DIR}/lib/Common
-  ${CHAKRACORE_SOURCE_DIR}/lib/Runtime
-  ${CHAKRACORE_SOURCE_DIR}/lib/Runtime/ByteCode
-  ${CHAKRACORE_SOURCE_DIR}/lib/Parser
-  ${CHAKRACORE_SOURCE_DIR}/lib/Jsrt
-  ${wasm_includes}
-  )
+    ChakraCoreStatic PUBLIC
+    ${CMAKE_CURRENT_SOURCE_DIR}
+    ${CHAKRACORE_SOURCE_DIR}/lib/Backend
+    ${CHAKRACORE_SOURCE_DIR}/lib/Common
+    ${CHAKRACORE_SOURCE_DIR}/lib/Runtime
+    ${CHAKRACORE_SOURCE_DIR}/lib/Runtime/ByteCode
+    ${CHAKRACORE_SOURCE_DIR}/lib/Parser
+    ${CHAKRACORE_SOURCE_DIR}/lib/Jsrt
+    ${wasm_includes}
+    )
 
 if(BuildJIT)
     add_subdirectory (Backend)

+ 0 - 1
pal/src/CMakeLists.txt

@@ -197,6 +197,5 @@ if (NOT STATIC_LIBRARY)
   target_link_libraries(Chakra.Pal.Singular
     ${PTHREAD}
     dl
-    ${CC_LTO_ENABLED}
     )
 endif()