Rewrite handling of LLVM_ENABLE_PIC. It was being processed after

config.h was generated, so it had no effect on it.

Thanks to arrowdodger for pointing out this and a tentative patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123119 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Oscar Fuentes 2011-01-09 14:34:39 +00:00
parent e7d7865bfd
commit 2c5e0b8b98
3 changed files with 20 additions and 21 deletions

View File

@ -195,27 +195,29 @@ else(WIN32)
endif(UNIX)
endif(WIN32)
include(config-ix)
option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON)
set(ENABLE_PIC 0)
if( LLVM_ENABLE_PIC )
if( XCODE )
# Xcode has -mdynamic-no-pic on by default, which overrides -fPIC. I don't
# know how to disable this, so just force ENABLE_PIC off for now.
message(STATUS "Warning: -fPIC not supported with Xcode.")
else( XCODE )
if( SUPPORTS_FPIC_FLAG )
if( XCODE )
# Xcode has -mdynamic-no-pic on by default, which overrides -fPIC. I don't
# know how to disable this, so just force ENABLE_PIC off for now.
message(WARNING "-fPIC not supported with Xcode.")
elseif( WIN32 )
# On Windows all code is PIC. MinGW warns if -fPIC is used.
else()
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-fPIC" SUPPORTS_FPIC_FLAG)
if( SUPPORTS_FPIC_FLAG )
message(STATUS "Building with -fPIC")
add_llvm_definitions(-fPIC)
set(ENABLE_PIC 1)
else( SUPPORTS_FPIC_FLAG )
message(STATUS "Warning: -fPIC not supported.")
endif()
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
else( SUPPORTS_FPIC_FLAG )
message(WARNING "-fPIC not supported.")
endif()
endif()
endif()
include(config-ix)
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_TOOLS_BINARY_DIR} )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib )

View File

@ -162,12 +162,9 @@ llvm_find_program(dotty)
# Define LLVM_MULTITHREADED if gcc atomic builtins exists.
include(CheckAtomic)
set(ENABLE_PIC ${LLVM_ENABLE_PIC})
include(CheckCXXCompilerFlag)
# On windows all code is position-independent and mingw warns if -fPIC
# is in the command-line.
if( NOT WIN32 )
check_cxx_compiler_flag("-fPIC" SUPPORTS_FPIC_FLAG)
endif()
check_cxx_compiler_flag("-Wno-variadic-macros" SUPPORTS_NO_VARIADIC_MACROS_FLAG)

View File

@ -31,7 +31,7 @@
#define CXX_INCLUDE_64BIT_DIR "${CXX_INCLUDE_64BIT_DIR}"
/* Define if position independent code is enabled */
#cmakedefine ENABLE_PIC ${ENABLE_PIC}
#cmakedefine ENABLE_PIC
/* Define if threads enabled */
#cmakedefine ENABLE_THREADS ${ENABLE_THREADS}