CMake: when building shared libraries, use -fPIC for compiling
authorOscar Fuentes <ofv@wanadoo.es>
Thu, 20 Nov 2008 03:10:17 +0000 (03:10 +0000)
committerOscar Fuentes <ofv@wanadoo.es>
Thu, 20 Nov 2008 03:10:17 +0000 (03:10 +0000)
partially linked objects.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59699 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/config-ix.cmake
cmake/modules/AddPartiallyLinkedObject.cmake

index fd6f73b31cdf7abbd3bcc8ea42e30486846eaee2..5158bfe4c69be047dfd9573b9f5c203444fa7935 100755 (executable)
@@ -52,6 +52,9 @@ check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
 check_symbol_exists(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK)
 check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL)
 
+include(CheckCXXCompilerFlag)
+check_cxx_compiler_flag("-fPIC" SUPPORTS_FPIC_FLAG)
+
 include(GetTargetTriple)
 get_target_triple(LLVM_HOSTTRIPLE)
 message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}")
index c23a665956cf91566f86e569913c8db759d0d58b..e13574ba131a4e914a982a2b95833bf5299e3356 100755 (executable)
@@ -17,6 +17,9 @@ macro(add_partially_linked_object lib)
     set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
     set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
     llvm_process_sources( ALL_FILES ${ARGN} )
+    if( BUILD_SHARED_LIBS AND SUPPORTS_FPIC_FLAG )
+      add_definitions(-fPIC)
+    endif()
     add_library( ${lib} STATIC ${ALL_FILES})
     if( LLVM_COMMON_DEPENDS )
       add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} )