diff --git a/Modules/Platform/SCO_SV.cmake b/Modules/Platform/SCO_SV.cmake
index efb7aa0..9e0c28d 100644
--- a/Modules/Platform/SCO_SV.cmake
+++ b/Modules/Platform/SCO_SV.cmake
@@ -1,5 +1,15 @@
-SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-Kpic -belf")
-SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-Kpic -belf")
 SET(CMAKE_DL_LIBS "")
-SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-belf -Wl,-Bexport")  
+IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+  SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-Bexport")
+  IF(CMAKE_COMPILER_IS_GNUCXX)
+    SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-fPIC")
+  ELSEIF(CMAKE_COMPILER_IS_GNUCC)
+    SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")
+  ELSE()
+    # SCO default
+    SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-Kpic -belf")
+    SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS "-Kpic -belf")
+    SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-belf -Wl,-Bexport")
+  ENDIF()
+ENDIF()
 INCLUDE(Platform/UnixPaths)
