1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

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>
This commit is contained in:
David Disseldorp 2013-05-28 15:11:45 +02:00 committed by Alexander Bokovoy
parent d86fda9b18
commit b48ceef1d3

18
wscript
View File

@ -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'''