Fix PIE options (dotnet/coreclr#26323)
authorJan Vorlicek <janvorli@microsoft.com>
Fri, 23 Aug 2019 15:03:01 +0000 (17:03 +0200)
committerJan Kotas <jkotas@microsoft.com>
Fri, 23 Aug 2019 15:03:01 +0000 (08:03 -0700)
* Fix PIE options

We were missing passing the -pie linker option. That means that while we
were compiling our code as position independent, the executables
(not shared libraries) were not marked as position independent and
ASLR was not applied to them. They were always loaded to fixed addresses.

This change adds the missing -pie option and also replaces all the individual
settings of -fPIE / -fPIC on the targets we build by a centralized setting
of CMAKE_POSITION_INDEPENDENT_CODE variable that causes cmake to add the
appropriate compiler options everywhere.

* Fix native parts of coreclr tests build

The native parts of the tests are not built using the root CMakeLists.txt
so I am moving enabling the position independent code to configurecompiler.cmake

Commit migrated from https://github.com/dotnet/coreclr/commit/f7205db2901015b721cb75a4d595441265223c21

47 files changed:
src/coreclr/configurecompiler.cmake
src/coreclr/src/binder/CMakeLists.txt
src/coreclr/src/classlibnative/bcltype/CMakeLists.txt
src/coreclr/src/classlibnative/float/CMakeLists.txt
src/coreclr/src/coreclr/hosts/osxbundlerun/CMakeLists.txt
src/coreclr/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt
src/coreclr/src/coreclr/hosts/unixcorerun/CMakeLists.txt
src/coreclr/src/coreclr/hosts/unixcoreruncommon/CMakeLists.txt
src/coreclr/src/corefx/System.Globalization.Native/CMakeLists.txt
src/coreclr/src/debug/createdump/CMakeLists.txt
src/coreclr/src/debug/daccess/CMakeLists.txt
src/coreclr/src/debug/dbgutil/CMakeLists.txt
src/coreclr/src/debug/debug-pal/CMakeLists.txt
src/coreclr/src/debug/di/CMakeLists.txt
src/coreclr/src/debug/ee/CMakeLists.txt
src/coreclr/src/debug/ee/wks/CMakeLists.txt
src/coreclr/src/debug/ildbsymlib/CMakeLists.txt
src/coreclr/src/debug/shim/CMakeLists.txt
src/coreclr/src/dlls/dbgshim/CMakeLists.txt
src/coreclr/src/dlls/mscordac/CMakeLists.txt
src/coreclr/src/dlls/mscorrc/CMakeLists.txt
src/coreclr/src/gc/CMakeLists.txt
src/coreclr/src/gc/unix/CMakeLists.txt
src/coreclr/src/gcinfo/CMakeLists.txt
src/coreclr/src/ilasm/CMakeLists.txt
src/coreclr/src/ildasm/exe/CMakeLists.txt
src/coreclr/src/inc/CMakeLists.txt
src/coreclr/src/jit/dll/CMakeLists.txt
src/coreclr/src/md/ceefilegen/CMakeLists.txt
src/coreclr/src/md/compiler/CMakeLists.txt
src/coreclr/src/md/datasource/CMakeLists.txt
src/coreclr/src/md/enc/CMakeLists.txt
src/coreclr/src/md/hotdata/CMakeLists.txt
src/coreclr/src/md/runtime/CMakeLists.txt
src/coreclr/src/md/staticmd/CMakeLists.txt
src/coreclr/src/md/winmd/CMakeLists.txt
src/coreclr/src/nativeresources/CMakeLists.txt
src/coreclr/src/pal/src/CMakeLists.txt
src/coreclr/src/pal/src/eventprovider/lttngprovider/CMakeLists.txt
src/coreclr/src/pal/tests/palsuite/exception_handling/pal_sxs/test1/CMakeLists.txt
src/coreclr/src/palrt/CMakeLists.txt
src/coreclr/src/strongname/api/CMakeLists.txt
src/coreclr/src/tools/crossgen/CMakeLists.txt
src/coreclr/src/unwinder/CMakeLists.txt
src/coreclr/src/utilcode/CMakeLists.txt
src/coreclr/src/vm/CMakeLists.txt
src/coreclr/tests/CMakeLists.txt

index 0432ab9..8e1f6b5 100644 (file)
@@ -6,6 +6,9 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
 set(CMAKE_CXX_STANDARD 11)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
+# All code we build should be compiled as position independent
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
 set(CLR_DEFINES_DEBUG_INIT              DEBUG _DEBUG _DBG URTBLDENV_FRIENDLY=Checked BUILDENV_CHECKED=1)
 set(CLR_DEFINES_CHECKED_INIT            DEBUG _DEBUG _DBG URTBLDENV_FRIENDLY=Checked BUILDENV_CHECKED=1)
 set(CLR_DEFINES_RELEASE_INIT            NDEBUG URTBLDENV_FRIENDLY=Retail)
@@ -323,10 +326,9 @@ elseif (CLR_CMAKE_PLATFORM_UNIX)
       endif ()
 
       # -fdata-sections -ffunction-sections: each function has own section instead of one per .o file (needed for --gc-sections)
-      # -fPIC: enable Position Independent Code normally just for shared libraries but required when linking with address sanitizer
       # -O1: optimization level used instead of -O0 to avoid compile error "invalid operand for inline asm constraint"
-      set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CLR_SANITIZE_CXX_FLAGS} -fdata-sections -ffunction-sections -fPIC -O1")
-      set(CMAKE_CXX_FLAGS_CHECKED "${CMAKE_CXX_FLAGS_CHECKED} ${CLR_SANITIZE_CXX_FLAGS} -fdata-sections -ffunction-sections -fPIC -O1")
+      set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CLR_SANITIZE_CXX_FLAGS} -fdata-sections -ffunction-sections  -O1")
+      set(CMAKE_CXX_FLAGS_CHECKED "${CMAKE_CXX_FLAGS_CHECKED} ${CLR_SANITIZE_CXX_FLAGS} -fdata-sections -ffunction-sections  -O1")
 
       set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${CLR_SANITIZE_LINK_FLAGS}")
       set(CMAKE_EXE_LINKER_FLAGS_CHECKED "${CMAKE_EXE_LINKER_FLAGS_CHECKED} ${CLR_SANITIZE_LINK_FLAGS}")
@@ -336,6 +338,11 @@ elseif (CLR_CMAKE_PLATFORM_UNIX)
       set(CMAKE_SHARED_LINKER_FLAGS_CHECKED "${CMAKE_SHARED_LINKER_FLAGS_CHECKED} ${CLR_SANITIZE_LINK_FLAGS} -Wl,--gc-sections")
     endif ()
   endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED)
+
+  # This linker option causes executables we build to be marked as containing position independent code.
+  # It is necessary to make ASLR work for executables.
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie" )
+
 endif(WIN32)
 
 # CLR_ADDITIONAL_LINKER_FLAGS - used for passing additional arguments to linker
index d92bec6..07f6c15 100644 (file)
@@ -91,9 +91,5 @@ endif(WIN32)
 convert_to_absolute_path(BINDER_SOURCES ${BINDER_SOURCES})
 convert_to_absolute_path(BINDER_CROSSGEN_SOURCES ${BINDER_CROSSGEN_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(v3binder)
 add_subdirectory(v3binder_crossgen)
index 843d7e8..67d1ad2 100644 (file)
@@ -11,10 +11,6 @@ set(BCLTYPE_SOURCES
     variant.cpp
 )
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_library_clr(bcltype
     STATIC
     ${BCLTYPE_SOURCES}
index bf173fe..44d40c9 100644 (file)
@@ -7,10 +7,6 @@ set(FLOAT_SOURCES
     floatsingle.cpp
 )
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_library_clr(comfloat_wks
     STATIC
     ${FLOAT_SOURCES}
index 8af173f..802c589 100644 (file)
@@ -2,8 +2,6 @@ project(osxbundlerun)
 
 include_directories(../unixcoreruncommon)
 
-add_compile_options(-fPIE)
-
 set(CORERUN_SOURCES 
     osxbundlerun.cpp 
 )
index 2daeaab..6e337b6 100644 (file)
@@ -2,8 +2,6 @@ project(unixcoreconsole)
 
 include_directories(../unixcoreruncommon)
 
-add_compile_options(-fPIE)
-
 set(CORECONSOLE_SOURCES 
     coreconsole.cpp 
 )
index 07beaae..5ee10b8 100644 (file)
@@ -2,8 +2,6 @@ project(unixcorerun)
 
 include_directories(../unixcoreruncommon)
 
-add_compile_options(-fPIE)
-
 set(CORERUN_SOURCES 
     corerun.cpp 
 )
index 93a5bbf..c859b0a 100644 (file)
@@ -1,7 +1,5 @@
 project(unixcoreruncommon)
 
-add_compile_options(-fPIC)
-
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 include(configure.cmake)
index 1d4c946..86709d7 100644 (file)
@@ -37,8 +37,6 @@ endif()
 
 include(configure.cmake)
 
-add_compile_options(-fPIC)
-
 set(NATIVEGLOBALIZATION_SOURCES
     pal_calendarData.c
     pal_casing.c
index b44016c..b7b09fd 100644 (file)
@@ -20,8 +20,6 @@ include_directories(BEFORE ${VM_DIR})
 
 add_definitions(-DPAL_STDCPP_COMPAT)
 
-add_compile_options(-fPIE)
-
 set(CREATEDUMP_SOURCES 
     createdump.cpp 
     crashinfo.cpp
index 0e8ccfe..241a629 100644 (file)
@@ -11,7 +11,6 @@ include_directories(${CLR_DIR}/src/gcdump)
 
 if(CLR_CMAKE_PLATFORM_UNIX)
   include_directories(${GENERATED_INCLUDE_DIR})
-  add_compile_options(-fPIC)
 endif(CLR_CMAKE_PLATFORM_UNIX)
 
 set(DACCESS_SOURCES
index 1c0d49a..6c43b5c 100644 (file)
@@ -9,8 +9,4 @@ set(DBGUTIL_SOURCES
     dbgutil.cpp
 )
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_library_clr(dbgutil STATIC ${DBGUTIL_SOURCES})
index 59ed63e..cea36b7 100644 (file)
@@ -16,7 +16,6 @@ if(WIN32)
 endif(WIN32)
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
 
     add_definitions(-DFEATURE_PAL)
     add_definitions(-DPAL_IMPLEMENTATION)
index f0a9d41..1c34eac 100644 (file)
@@ -89,7 +89,6 @@ if(WIN32)
         set(CORDBDI_SOURCES_ASM_FILE ${CMAKE_CURRENT_BINARY_DIR}/${name}.obj)
     endif()
 elseif(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
 
     if(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM64 OR CLR_CMAKE_TARGET_ARCH_ARM)
       set(CORDBDI_SOURCES_ASM_FILE
index 11a6702..383ab24 100644 (file)
@@ -6,10 +6,6 @@ include_directories(BEFORE ${VM_DIR})
 include_directories(BEFORE ${VM_DIR}/${ARCH_SOURCES_DIR})
 include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-  add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 set(CORDBEE_SOURCES_DAC_AND_WKS
   controller.cpp
   debugger.cpp
index c6a4bcc..6a1a47c 100644 (file)
@@ -54,8 +54,6 @@ if (WIN32)
 
 else ()
 
-  add_compile_options(-fPIC)
-
   if(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM OR CLR_CMAKE_PLATFORM_ARCH_ARM64 OR CLR_CMAKE_PLATFORM_ARCH_I386)
     add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS} ../${ARCH_SOURCES_DIR}/dbghelpers.S)
   else()
index 1bd1096..cf72a0e 100644 (file)
@@ -10,9 +10,5 @@ set( ILDBSYMLIB_SOURCES
   symwrite.cpp
 )
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_library_clr(ildbsymlib ${ILDBSYMLIB_SOURCES})
 
index 8720eb7..28b7f62 100644 (file)
@@ -4,10 +4,6 @@ if(WIN32)
   add_definitions(-DHOST_IS_WINDOWS_OS)
 endif(WIN32)
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-  add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 set(DEBUGSHIM_SOURCES
   debugshim.cpp
 )
index 7e6ae61..ca4556b 100644 (file)
@@ -41,8 +41,6 @@ endif(CLR_CMAKE_PLATFORM_DARWIN)
 add_library_clr(dbgshim SHARED ${DBGSHIM_SOURCES})
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-
     add_custom_target(dbgshim_exports DEPENDS ${EXPORTS_FILE})
     add_dependencies(dbgshim dbgshim_exports)
 
index e065eba..df8d615 100644 (file)
@@ -1,10 +1,6 @@
 include(${CLR_DIR}/dac.cmake)
 add_definitions(-DFEATURE_NO_HOST)
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 set(CLR_DAC_SOURCES
 )
 
index 8f67988..366ace4 100644 (file)
@@ -9,10 +9,6 @@ if(WIN32)
     string(REPLACE "/guard:cf" "" CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS})
 endif(WIN32)
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(full)
 
 # Only add the small version of the resources if the platform is Windows.
index ab9f3a0..17a774c 100644 (file)
@@ -97,7 +97,6 @@ target_link_libraries(clrgc ${GC_LINK_LIBRARIES})
 install_clr(clrgc)
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-  add_compile_options(-fPIC)
   # dprintf causes many warnings (https://github.com/dotnet/coreclr/issues/13367)
   add_compile_options(-Wno-format)
 endif(CLR_CMAKE_PLATFORM_UNIX)
index 1025810..e1d3571 100644 (file)
@@ -1,5 +1,4 @@
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
-add_compile_options(-fPIC)
 include_directories("../env")
 
 include(configure.cmake)
index 79c4f48..c9c60db 100644 (file)
@@ -16,10 +16,6 @@ endif(CLR_CMAKE_TARGET_ARCH_I386)
 
 convert_to_absolute_path(GCINFO_SOURCES ${GCINFO_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(lib)
 add_subdirectory(crossgen)
 
index 1b71c27..11e232d 100644 (file)
@@ -9,10 +9,6 @@ add_definitions(-DFEATURE_CORECLR)
 
 include_directories(.)
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-  add_compile_options(-fPIE)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 set(ILASM_SOURCES
   assem.cpp
   writer.cpp
index 78480ea..f642e81 100644 (file)
@@ -10,7 +10,6 @@ add_definitions(-DFEATURE_CORECLR)
 include_directories(..)
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIE)
     build_resources(${CMAKE_CURRENT_SOURCE_DIR}/../dasm.rc dasm_rc TARGET_CPP_FILE)
 
     set(ILDASM_RESOURCES
index c38d595..a6692ee 100644 (file)
@@ -62,7 +62,6 @@ foreach(IDL_SOURCE IN LISTS CORGUIDS_IDL_SOURCES)
    list(APPEND CORGUIDS_SOURCES ${C_SOURCE})
 endforeach(IDL_SOURCE)
 
-add_compile_options(-fPIC)
 endif(WIN32)
 
 if(FEATURE_JIT_PITCHING)
index 9e930de..624e357 100644 (file)
@@ -3,8 +3,6 @@ project(ClrJit)
 set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-
     add_library_clr(clrjit_static
       STATIC
       ${SHARED_LIB_SOURCES}
index 7170fac..57d4cb6 100644 (file)
@@ -21,10 +21,6 @@ set(CEEFILEGEN_HEADERS
     ../../inc/utilcode.h
 )
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_precompiled_header(stdafx.h stdafx.cpp CEEFILEGEN_SOURCES)
 
 if (WIN32)
index 5000f1b..260731d 100644 (file)
@@ -51,10 +51,6 @@ set(MDCOMPILER_HEADERS
 convert_to_absolute_path(MDCOMPILER_SOURCES ${MDCOMPILER_SOURCES})
 convert_to_absolute_path(MDCOMPILER_HEADERS ${MDCOMPILER_HEADERS})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(wks)
 add_subdirectory(dbi)
index 489ef34..3aaa00a 100644 (file)
@@ -1,7 +1,3 @@
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 set(MDDATASOURCE_SOURCES
   api.cpp
   datatargetreader.cpp
index 32d640a..2f1398d 100644 (file)
@@ -44,10 +44,6 @@ endif(WIN32)
 convert_to_absolute_path(MDRUNTIMERW_HEADERS ${MDRUNTIMERW_HEADERS})
 convert_to_absolute_path(MDRUNTIMERW_SOURCES ${MDRUNTIMERW_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(wks)
 add_subdirectory(dbi)
index 600da6a..92a16cc 100644 (file)
@@ -25,10 +25,6 @@ set(MDHOTDATA_HEADERS
 convert_to_absolute_path(MDHOTDATA_HEADERS ${MDHOTDATA_HEADERS})
 convert_to_absolute_path(MDHOTDATA_SOURCES ${MDHOTDATA_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(full)
 add_subdirectory(crossgen)
index 1111bdb..fc817b1 100644 (file)
@@ -41,10 +41,6 @@ set(MDRUNTIME_HEADERS
 convert_to_absolute_path(MDRUNTIME_HEADERS ${MDRUNTIME_HEADERS})
 convert_to_absolute_path(MDRUNTIME_SOURCES ${MDRUNTIME_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(wks)
 add_subdirectory(dbi)
index 1800dad..c3726a8 100644 (file)
@@ -6,11 +6,6 @@ set(STATICMD_SOURCES
 
 convert_to_absolute_path(STATICMD_SOURCES ${STATICMD_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
-
 add_definitions(-DFEATURE_METADATA_EMIT_ALL)
 add_definitions(-DFEATURE_METADATA_EMIT)
 add_definitions(-DFEATURE_METADATA_INTERNAL_APIS)
index 31dbbbf..567a975 100644 (file)
@@ -20,10 +20,6 @@ set(MDWINMD_HEADERS
 convert_to_absolute_path(MDWINMD_HEADERS ${MDWINMD_HEADERS})
 convert_to_absolute_path(MDWINMD_SOURCES ${MDWINMD_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(wks)
 if(WIN32)
index e73a0d2..947a914 100644 (file)
@@ -1,7 +1,5 @@
 project(nativeresourcestring)
 
-add_compile_options(-fPIC)
-
 add_library_clr(nativeresourcestring
   STATIC
   resourcestring.cpp
index 9315662..1a5b3b3 100644 (file)
@@ -9,8 +9,6 @@ if(NOT DEFINED ENV{ROOTFS_DIR})
   include_directories(SYSTEM /usr/local/include)
 endif()
 
-add_compile_options(-fPIC)
-
 if(NOT CLR_CMAKE_USE_SYSTEM_LIBUNWIND)
   include_directories(libunwind/include)
   include_directories(libunwind/include/tdep)
index b5bf8e8..1f49aef 100644 (file)
@@ -46,8 +46,6 @@ add_library(eventprovider
     eventproviderhelpers.cpp
 )
 
-add_compile_options(-fPIC)
-
 add_library(coreclrtraceptprovider
     SHARED
     ${TRACEPOINT_PROVIDER_SOURCES}
index 4a3abc2..685ac2e 100644 (file)
@@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 2.8.12.2)
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
     add_definitions(-DFEATURE_ENABLE_HARDWARE_EXCEPTIONS)
 endif(CLR_CMAKE_PLATFORM_UNIX)
 
index d9f7b94..77fdc67 100644 (file)
@@ -12,8 +12,6 @@ set(PALRT_SOURCES
     variant.cpp
 )
 
-add_compile_options(-fPIC)
-
 add_library_clr(palrt
     STATIC
     ${PALRT_SOURCES}
index 0b5e01e..1e0ec20 100644 (file)
@@ -17,10 +17,6 @@ set(STRONGNAME_SOURCES
 
 convert_to_absolute_path(STRONGNAME_SOURCES ${STRONGNAME_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(wks)
 add_subdirectory(crossgen)
index 410f82d..ab5b4ed 100644 (file)
@@ -14,7 +14,6 @@ if(WIN32)
 endif()
 
 if(CLR_CMAKE_PLATFORM_UNIX)
-  add_compile_options(-fPIE)
   add_definitions(-DNO_NGENPDB)
 endif(CLR_CMAKE_PLATFORM_UNIX)
 
index 5cd7bae..9a5d782 100644 (file)
@@ -19,10 +19,6 @@ list(APPEND UNWINDER_SOURCES
 
 convert_to_absolute_path(UNWINDER_SOURCES ${UNWINDER_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 if(CLR_CMAKE_PLATFORM_UNIX)    
     add_subdirectory(wks)
 endif(CLR_CMAKE_PLATFORM_UNIX)
index e8b1b13..deb5dc8 100644 (file)
@@ -109,10 +109,6 @@ convert_to_absolute_path(UTILCODE_DAC_SOURCES ${UTILCODE_DAC_SOURCES})
 convert_to_absolute_path(UTILCODE_CROSSGEN_SOURCES ${UTILCODE_CROSSGEN_SOURCES})
 convert_to_absolute_path(UTILCODE_STATICNOHOST_SOURCES ${UTILCODE_STATICNOHOST_SOURCES})
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 add_subdirectory(dac)
 add_subdirectory(dyncrt)
 add_subdirectory(staticnohost)
index d9dca1f..5ee54cb 100644 (file)
@@ -21,10 +21,6 @@ else()
   endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED)
 endif(CMAKE_CONFIGURATION_TYPES)
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 if(FEATURE_GDBJIT)
     set(VM_SOURCES_GDBJIT
         gdbjit.cpp
index 665b368..a556029 100644 (file)
@@ -32,10 +32,6 @@ if (WIN32)
     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
 endif()
 
-if(CLR_CMAKE_PLATFORM_UNIX)
-    add_compile_options(-fPIC)
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
 MACRO(SUBDIRLIST result curdir)
   FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
   SET(dirlist "")