Skip to content

Commit c0ba605

Browse files
committed
cmake: use PIE option set by the toolchain if set when building the game
1 parent 8553be9 commit c0ba605

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ endif()
546546
include(DaemonNacl)
547547
if (NACL)
548548
add_library(srclibs-nacl-module EXCLUDE_FROM_ALL ${NACLLIST_MODULE})
549-
set_target_properties(srclibs-nacl-module PROPERTIES POSITION_INDEPENDENT_CODE 1 FOLDER "libs")
549+
set_target_properties(srclibs-nacl-module PROPERTIES POSITION_INDEPENDENT_CODE ${GAME_PIE} FOLDER "libs")
550550
set(LIBS_BASE ${LIBS_BASE} srclibs-nacl-module)
551551
else()
552552
add_library(srclibs-nacl-native EXCLUDE_FROM_ALL ${NACLLIST_NATIVE})
@@ -620,7 +620,7 @@ if (BUILD_CLIENT OR BUILD_TTY_CLIENT OR BUILD_SERVER OR BUILD_DUMMY_APP OR NACL)
620620
find_package(ZLIB REQUIRED)
621621
else()
622622
add_library(srclibs-zlib EXCLUDE_FROM_ALL ${ZLIBLIST})
623-
set_target_properties(srclibs-zlib PROPERTIES POSITION_INDEPENDENT_CODE 1 FOLDER "libs")
623+
set_target_properties(srclibs-zlib PROPERTIES POSITION_INDEPENDENT_CODE ${GAME_PIE} FOLDER "libs")
624624
set(ZLIB_INCLUDE_DIRS ${LIB_DIR}/zlib)
625625
set(ZLIB_LIBRARIES srclibs-zlib)
626626
endif()

cmake/toolchain-pnacl.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
8383

8484
set(NACL ON)
8585

86+
set(GAME_PIE 1)
87+
set(GAME_PIE_SET ON)
88+
8689
set(CMAKE_C_FLAGS "")
8790
set(CMAKE_CXX_FLAGS "")
8891

cmake/toolchain-saigo.cmake

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,16 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
4141
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
4242

4343
set(NACL ON)
44-
add_definitions(-DUSE_NACL_SAIGO)
44+
45+
# Saigo clang reports weird errors when building some cgame and sgame arm nexe with PIE.
46+
# Saigo clang crashes when building amd64 cgame with PIE, sgame builds properly though.
47+
if (NACL_TARGET STREQUAL "armhf" OR NACL_TARGET STREQUAL "amd64")
48+
set(GAME_PIE 0)
49+
else()
50+
set(GAME_PIE 1)
51+
endif()
52+
53+
set(GAME_PIE_SET ON)
4554

4655
set(CMAKE_C_FLAGS "")
4756
set(CMAKE_CXX_FLAGS "")

0 commit comments

Comments
 (0)