summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@samba.org>2013-05-28 15:11:45 +0200
committerAlexander Bokovoy <ab@samba.org>2013-05-29 09:36:39 +0200
commitb48ceef1d3031ec72018dc9bad1cf0dcb9864a56 (patch)
tree555ecef92493da2d69a916ab152d2f49fc148f97
parentd86fda9b18be15a33d1a8850eedda352fdb91285 (diff)
downloadsamba-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>
-rw-r--r--wscript18
1 files changed, 12 insertions, 6 deletions
diff --git a/wscript b/wscript
index efebfc402a..83c82e3540 100644
--- a/wscript
+++ b/wscript
@@ -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'''