From 7c79da63332b127b5e82ed6b10715725908527fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Sun, 12 Oct 2014 17:44:00 +0200 Subject: [PATCH] Build setuid binaries with PIE flags (cherry picked from commit 08c6f54d6f80554caa671847417cf04326adb63c) --- modules/TDEMacros.cmake | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 008d1dc..fe16e9c 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -13,6 +13,7 @@ ################################################# include( KDE3Macros ) # we will need this module for a while +include( CheckCXXCompilerFlag ) ################################################# @@ -887,6 +888,12 @@ macro( tde_add_executable _arg_target ) add_dependencies( ${_target} ${_dependencies} ) endif( _dependencies ) + # set PIE flags for setuid binaries + if( _setuid ) + set_target_properties( ${_target} PROPERTIES COMPILE_FLAGS ${TDE_PIE_CFLAGS} ) + set_target_properties( ${_target} PROPERTIES LINK_FLAGS ${TDE_PIE_LDFLAGS} ) + endif( _setuid ) + # set destination directory if( _destination ) if( _setuid ) @@ -1388,4 +1395,10 @@ macro( tde_setup_architecture_flags ) else( ) set( LINKER_IMMEDIATE_BINDING_FLAGS "" CACHE INTERNAL "" FORCE ) endif( ) + + check_cxx_compiler_flag( -fPIE HAVE_PIE_SUPPORT ) + if( HAVE_PIE_SUPPORT ) + set( TDE_PIE_CFLAGS -fPIE ) + set( TDE_PIE_LDFLAGS -pie ) + endif( HAVE_PIE_SUPPORT ) endmacro( )