-
Notifications
You must be signed in to change notification settings - Fork 455
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add build support for PIE code generation for executables #1871
base: main
Are you sure you want to change the base?
Changes from all commits
8379cfa
5a4a6e5
a0dc5f0
9d67a78
0f95d4c
f9685f7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
############################################################################### | ||
# CMake definition. | ||
|
||
cmake_minimum_required(VERSION 3.13) | ||
cmake_minimum_required(VERSION 3.15) | ||
|
||
set(CMAKE_MODULE_PATH | ||
${CMAKE_MODULE_PATH} | ||
|
@@ -341,8 +341,18 @@ endif() | |
############################################################################### | ||
# Define compilation and link flags | ||
|
||
option(OCIO_BUILD_POSITION_INDEPENDENT_EXECUTABLES "Set to ON to build executables as PIE" OFF) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Question: Do we need a new option switch for this or should we just look at the user provided As a related observation, we seem to already force this for some targets, as can be found searching for There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure we force it for any shared objects, which by definition need to be relocatable, The new option I was considering the question of how do we know the intention of what adding the option on the command line is supposed to mean. the named option was about communicating their intent. I guess we could do a simple vote next TSC about what people prefer. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah let's discuss that next TSC, also seem we should try to align with other projects on this. |
||
|
||
include(CompilerFlags) | ||
|
||
if(OCIO_BUILD_POSITION_INDEPENDENT_EXECUTABLES) | ||
if(NOT CMAKE_C_LINK_PIE_SUPPORTED) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we need to check There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe, in that case we should probably be explicit about the languages we are checking for in the |
||
message(FATAL_ERROR "PIE is not supported at link time.\n") | ||
endif() | ||
message(STATUS "Enabling PIE generation.\n") | ||
set(CMAKE_POSITION_INDEPENDENT_CODE ON) | ||
endif() | ||
|
||
############################################################################### | ||
# External linking options | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forgot to mention but we should also update the minimum version in other places, half a dozen or so references came up when looking for 3.13 in the code base.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another TSC query or two?