CMake: when building shared libraries, use -fPIC for compiling

partially linked objects.

llvm-svn: 59699
This commit is contained in:
Oscar Fuentes 2008-11-20 03:10:17 +00:00
parent 3f656dfa03
commit 4d69fd4f1c
2 changed files with 6 additions and 0 deletions

View File

@ -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(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK)
check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL) check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL)
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-fPIC" SUPPORTS_FPIC_FLAG)
include(GetTargetTriple) include(GetTargetTriple)
get_target_triple(LLVM_HOSTTRIPLE) get_target_triple(LLVM_HOSTTRIPLE)
message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}") message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}")

View File

@ -17,6 +17,9 @@ macro(add_partially_linked_object lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
set(CMAKE_LIBRARY_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} ) llvm_process_sources( ALL_FILES ${ARGN} )
if( BUILD_SHARED_LIBS AND SUPPORTS_FPIC_FLAG )
add_definitions(-fPIC)
endif()
add_library( ${lib} STATIC ${ALL_FILES}) add_library( ${lib} STATIC ${ALL_FILES})
if( LLVM_COMMON_DEPENDS ) if( LLVM_COMMON_DEPENDS )
add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} ) add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} )