diff options
author | David Disseldorp <ddiss@samba.org> | 2013-05-28 15:11:45 +0200 |
---|---|---|
committer | Alexander Bokovoy <ab@samba.org> | 2013-05-29 09:36:39 +0200 |
commit | b48ceef1d3031ec72018dc9bad1cf0dcb9864a56 (patch) | |
tree | 555ecef92493da2d69a916ab152d2f49fc148f97 /wscript | |
parent | d86fda9b18be15a33d1a8850eedda352fdb91285 (diff) | |
download | samba-b48ceef1d3031ec72018dc9bad1cf0dcb9864a56.tar.gz samba-b48ceef1d3031ec72018dc9bad1cf0dcb9864a56.tar.bz2 samba-b48ceef1d3031ec72018dc9bad1cf0dcb9864a56.zip |
waf: build PIEs if supported by the compiler
Currently waf performs a mandatory check for compiler PIE support,
unless --without-pie is specified.
This change makes Waf only perform the mandatory check if --with-pie is
specified. If neither --with-pie nor --without-pie are specified, then
PIEs are only built if compiler support is available.
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
Diffstat (limited to 'wscript')
-rw-r--r-- | wscript | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -57,8 +57,9 @@ def set_options(opt): action='store_true', dest='without_ad_dc', default=False) opt.add_option('--with-pie', - help=("Build Position Independent Executables (default)"), - action="store_true", dest='enable_pie', default=True) + help=("Build Position Independent Executables " + + "(default if supported by compiler)"), + action="store_true", dest='enable_pie') opt.add_option('--without-pie', help=("Disable Position Independent Executable builds"), action="store_false", dest='enable_pie') @@ -167,10 +168,15 @@ def configure(conf): conf.SAMBA_CONFIG_H('include/config.h') - if Options.options.enable_pie == True: - conf.check_cc(cflags='-fPIE', ldflags='-pie', mandatory=True, - msg="Checking compiler for PIE support") - conf.env['ENABLE_PIE'] = True + if Options.options.enable_pie != False: + if Options.options.enable_pie == True: + need_pie = True + else: + # not specified, only build PIEs if supported by compiler + need_pie = False + if conf.check_cc(cflags='-fPIE', ldflags='-pie', mandatory=need_pie, + msg="Checking compiler for PIE support"): + conf.env['ENABLE_PIE'] = True def etags(ctx): '''build TAGS file using etags''' |