Ensure sessiond service build as PIE 24/321824/3
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Fri, 28 Mar 2025 13:12:42 +0000 (14:12 +0100)
committerMichal Bloch <m.bloch@samsung.com>
Mon, 31 Mar 2025 13:54:27 +0000 (15:54 +0200)
This is needed for plugins to be able to safely call sessiond exported
symbols.

Change-Id: I10eb2b8163d202f10cbdd209bffe412309da1952

src/service/CMakeLists.txt

index 5d24aa92821977eda9be314a854593c87a11590b..62eaf8bc6c329a0d98feecc543fc0db66f9faa38 100644 (file)
@@ -16,9 +16,13 @@ set(
        src/dir_backend_fixed_size.cpp
        src/tuple_g_variant_helpers.hpp
 )
+set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -fPIC -fPIE -Wno-error=shadow -Werror=missing-field-initializers -pthread")
+set(CMAKE_EXE_LINKER_FLAGS "-pie -rdynamic")
+
 add_executable(sessiond ${sessiond_SRCS})
 target_compile_features(sessiond PUBLIC cxx_std_20)
 target_link_libraries(sessiond PRIVATE PkgConfig::DEPS sessiond_common)
+set_target_properties(sessiond PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
 install(TARGETS sessiond)
 
 INSTALL(FILES sessiond.service DESTINATION /usr/lib/systemd/system)