- 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
+
+ if Options.options.enable_relro != False:
+ if Options.options.enable_relro == True:
+ need_relro = True
+ else:
+ # not specified, only build RELROs if supported by compiler
+ need_relro = False
+ if conf.check_cc(cflags='', ldflags='-Wl,-z,relro,-z,now', mandatory=need_relro,
+ msg="Checking compiler for full RELRO support"):
+ conf.env['ENABLE_RELRO'] = True