Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Fix PIE options #26323

Merged
merged 2 commits into from
Aug 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions configurecompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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}")
Expand All @@ -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
Expand Down
4 changes: 0 additions & 4 deletions src/binder/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
4 changes: 0 additions & 4 deletions src/classlibnative/bcltype/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
4 changes: 0 additions & 4 deletions src/classlibnative/float/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
2 changes: 0 additions & 2 deletions src/coreclr/hosts/osxbundlerun/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ project(osxbundlerun)

include_directories(../unixcoreruncommon)

add_compile_options(-fPIE)

set(CORERUN_SOURCES
osxbundlerun.cpp
)
Expand Down
2 changes: 0 additions & 2 deletions src/coreclr/hosts/unixcoreconsole/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ project(unixcoreconsole)

include_directories(../unixcoreruncommon)

add_compile_options(-fPIE)

set(CORECONSOLE_SOURCES
coreconsole.cpp
)
Expand Down
2 changes: 0 additions & 2 deletions src/coreclr/hosts/unixcorerun/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ project(unixcorerun)

include_directories(../unixcoreruncommon)

add_compile_options(-fPIE)

set(CORERUN_SOURCES
corerun.cpp
)
Expand Down
2 changes: 0 additions & 2 deletions src/coreclr/hosts/unixcoreruncommon/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
project(unixcoreruncommon)

add_compile_options(-fPIC)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

include(configure.cmake)
Expand Down
2 changes: 0 additions & 2 deletions src/corefx/System.Globalization.Native/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ endif()

include(configure.cmake)

add_compile_options(-fPIC)

set(NATIVEGLOBALIZATION_SOURCES
pal_calendarData.c
pal_casing.c
Expand Down
2 changes: 0 additions & 2 deletions src/debug/createdump/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion src/debug/daccess/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 0 additions & 4 deletions src/debug/dbgutil/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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})
1 change: 0 additions & 1 deletion src/debug/debug-pal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion src/debug/di/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 0 additions & 4 deletions src/debug/ee/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions src/debug/ee/wks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 0 additions & 4 deletions src/debug/ildbsymlib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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})

4 changes: 0 additions & 4 deletions src/debug/shim/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
Expand Down
2 changes: 0 additions & 2 deletions src/dlls/dbgshim/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
4 changes: 0 additions & 4 deletions src/dlls/mscordac/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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
)

Expand Down
4 changes: 0 additions & 4 deletions src/dlls/mscorrc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
1 change: 0 additions & 1 deletion src/gc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 0 additions & 1 deletion src/gc/unix/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_compile_options(-fPIC)
include_directories("../env")

include(configure.cmake)
Expand Down
4 changes: 0 additions & 4 deletions src/gcinfo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
4 changes: 0 additions & 4 deletions src/ilasm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion src/ildasm/exe/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion src/inc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 0 additions & 2 deletions src/jit/dll/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
4 changes: 0 additions & 4 deletions src/md/ceefilegen/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 0 additions & 4 deletions src/md/compiler/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 0 additions & 4 deletions src/md/datasource/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 0 additions & 4 deletions src/md/enc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 0 additions & 4 deletions src/md/hotdata/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 0 additions & 4 deletions src/md/runtime/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
5 changes: 0 additions & 5 deletions src/md/staticmd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 0 additions & 4 deletions src/md/winmd/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 0 additions & 2 deletions src/nativeresources/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
project(nativeresourcestring)

add_compile_options(-fPIC)

add_library_clr(nativeresourcestring
STATIC
resourcestring.cpp
Expand Down
2 changes: 0 additions & 2 deletions src/pal/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 0 additions & 2 deletions src/pal/src/eventprovider/lttngprovider/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ add_library(eventprovider
eventproviderhelpers.cpp
)

add_compile_options(-fPIC)

add_library(coreclrtraceptprovider
SHARED
${TRACEPOINT_PROVIDER_SOURCES}
Expand Down
Loading