瀏覽代碼

BUG: Don't use -nostdlib option to link shared libraries. Just use gcc -shared, even for C++ libraries.

Brad King 23 年之前
父節點
當前提交
284071e3fa
共有 1 個文件被更改,包括 12 次插入7 次删除
  1. 12 7
      Modules/Platform/SunOS.cmake

+ 12 - 7
Modules/Platform/SunOS.cmake

@@ -1,6 +1,6 @@
 IF(CMAKE_SYSTEM MATCHES "SunOS-4.*")
    SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC") 
-   SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r -nostdlib") 
+   SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r") 
    SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG "-Wl,-R")
    SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP ":")  
 ENDIF(CMAKE_SYSTEM MATCHES "SunOS-4.*")
@@ -12,22 +12,27 @@ IF(CMAKE_SYSTEM MATCHES "SunOS-5*.")
   SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP ":")
   IF(CMAKE_COMPILER_IS_GNUCC)
     SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") 
-    SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -nostdlib")
+    SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG "-Wl,-R")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_FLAG_SEP ":")  
   ENDIF(CMAKE_COMPILER_IS_GNUCC)
   IF(CMAKE_COMPILER_IS_GNUCXX)
     SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC") 
-    SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -nostdlib")
+    SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG "-Wl,-R")
     SET(CMAKE_SHARED_LIBRARY_RUNTIME_CXX_FLAG_SEP ":")  
   ENDIF(CMAKE_COMPILER_IS_GNUCXX)
-
 ENDIF(CMAKE_SYSTEM MATCHES "SunOS-5*.")
 
-IF(NOT CMAKE_COMPILER_IS_GNUCXX)
+IF(CMAKE_COMPILER_IS_GNUCXX)
+  IF(CMAKE_COMPILER_IS_GNUCC)
+    SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
+        "<CMAKE_C_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+  ELSE(CMAKE_COMPILER_IS_GNUCC)
+    # Take default rule from CMakeDefaultMakeRuleVariables.cmake.
+  ENDIF(CMAKE_COMPILER_IS_GNUCC)
+ELSE(CMAKE_COMPILER_IS_GNUCXX)
   SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
       "<CMAKE_CXX_COMPILER> -xar -o <TARGET> <OBJECTS> "
       "<CMAKE_RANLIB> <TARGET> ")
-ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
-
+ENDIF(CMAKE_COMPILER_IS_GNUCXX)