From 08c6f54d6f80554caa671847417cf04326adb63c 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 --- modules/TDEMacros.cmake | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 4f5f59e..c271c98 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 ) ################################################# @@ -1023,6 +1024,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 ) @@ -1537,4 +1544,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( )