From 2037b848f6563001d84f1a17ad5801e4ee548a26 Mon Sep 17 00:00:00 2001 From: wangrong Date: Sun, 4 Jan 2026 16:31:53 +0800 Subject: [PATCH] fix: Fix sw64 gcc not support pie by default Add the -fPIE parameter via CMAKE_POSITION_INDEPENDENT_CODE. Add the -pie parameter via target_link_options. Log: Update compiler flags for security enhancements Bug: https://pms.uniontech.com/bug-view-339563.html --- CMakeLists.txt | 2 ++ src/daemon/CMakeLists.txt | 2 ++ src/logger/CMakeLists.txt | 2 ++ src/searcher/CMakeLists.txt | 2 ++ src/server/CMakeLists.txt | 2 ++ 5 files changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 321b60b7..76ded82a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.1.0) project(deepin-anything) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + # Install settings if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX /usr) diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt index ed375902..5a5e2005 100755 --- a/src/daemon/CMakeLists.txt +++ b/src/daemon/CMakeLists.txt @@ -122,6 +122,8 @@ target_link_libraries(${PROJECT_NAME} PUBLIC target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Werror -Wextra) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17) +target_link_options(${PROJECT_NAME} PRIVATE -pie) + configure_file ("${PROJECT_NAME}.pc.in" "${PROJECT_NAME}.pc" @ONLY) install(TARGETS ${PROJECT_NAME} DESTINATION libexec) install(FILES deepin-anything-daemon.service DESTINATION lib/systemd/user) diff --git a/src/logger/CMakeLists.txt b/src/logger/CMakeLists.txt index 1c8af92d..1912440a 100644 --- a/src/logger/CMakeLists.txt +++ b/src/logger/CMakeLists.txt @@ -34,6 +34,8 @@ target_link_libraries(deepin-anything-logger PRIVATE ${GNL_LIBRARIES} ) +target_link_options(deepin-anything-logger PRIVATE -pie) + install(TARGETS deepin-anything-logger DESTINATION libexec) # Install dconfig meta file diff --git a/src/searcher/CMakeLists.txt b/src/searcher/CMakeLists.txt index 2473032c..3ccc69b7 100644 --- a/src/searcher/CMakeLists.txt +++ b/src/searcher/CMakeLists.txt @@ -42,6 +42,8 @@ target_link_libraries(deepin-anything-searcher stdc++fs ) +target_link_options(deepin-anything-searcher PRIVATE -pie) + # Install install(TARGETS deepin-anything-searcher RUNTIME DESTINATION bin diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index 466c7c4b..3f208197 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -24,6 +24,8 @@ target_link_libraries(${PROJECT_NAME} PRIVATE ${MOUNT_LIBRARIES} ) +target_link_options(${PROJECT_NAME} PRIVATE -pie) + install(TARGETS ${PROJECT_NAME} DESTINATION libexec) # installed by debhelper # install(FILES deepin-anything-server.service DESTINATION lib/systemd/system)