Переглянути джерело

ppc64: Work around TOC overflow with platform specific linker flags

Chuck Atkins 6 роки тому
батько
коміт
5c58a7e4d2
1 змінених файлів з 9 додано та 0 видалено
  1. 9 0
      CompileFlags.cmake

+ 9 - 0
CompileFlags.cmake

@@ -44,6 +44,15 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^parisc")
   endif()
 endif()
 
+# Workaround for TOC Overflow on ppc64
+if(CMAKE_SYSTEM_NAME STREQUAL "AIX" AND
+   CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-bbigtoc")
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND
+   CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-multi-toc")
+endif()
+
 if (CMAKE_CXX_COMPILER_ID STREQUAL SunPro AND
     NOT DEFINED CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION)
   if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)