CMake: Enable PIC on Linux

Otherwise ASLR does not work. Also stops LTO builds crashing in the
middle of Qt on Fedora.
This commit is contained in:
Stenzek 2024-08-24 18:32:28 +10:00
parent fbe2d46873
commit 0c3051e35f
No known key found for this signature in database
2 changed files with 8 additions and 1 deletions

View file

@ -34,6 +34,13 @@ detect_cache_line_size()
# Build options. Depends on system attributes. # Build options. Depends on system attributes.
include(DuckStationBuildOptions) include(DuckStationBuildOptions)
# Enable PIC on Linux, otherwise the builds do not support ASLR.
if(LINUX OR BSD)
include(CheckPIESupported)
check_pie_supported()
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
endif()
# Set _DEBUG macro for Debug builds. # Set _DEBUG macro for Debug builds.
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")

View file

@ -143,7 +143,7 @@ echo "Building libbacktrace..."
rm -fr "libbacktrace-$LIBBACKTRACE" rm -fr "libbacktrace-$LIBBACKTRACE"
unzip "$LIBBACKTRACE.zip" unzip "$LIBBACKTRACE.zip"
cd "libbacktrace-$LIBBACKTRACE" cd "libbacktrace-$LIBBACKTRACE"
./configure --prefix="$INSTALLDIR" ./configure --prefix="$INSTALLDIR" --with-pic
make make
make install make install
cd .. cd ..