The branch, v4-0-test has been updated via d4cd828 waf: build PIEs if supported by the compiler via b4378f1 waf: build position independent executables via 097ec58 waf: add --with[out]-pie configure arguments via 0996e95 build: Add missing new line to replaced python shebang line. (Fix bug #9909) from 2aee249 build: Install smbtar in waf build
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test - Log ----------------------------------------------------------------- commit d4cd8284d9f6bdf9ce299648405b729e343da55d Author: David Disseldorp <dd...@samba.org> Date: Tue May 28 15:00:47 2013 +0200 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 <dd...@samba.org> The last 3 patches address bug #9910 - PIE builds not supported. Autobuild-User(v4-0-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-0-test): Thu May 30 11:37:47 CEST 2013 on sn-devel-104 commit b4378f1f3b6c442f3657577fd8f36d6179b2e11d Author: David Disseldorp <dd...@samba.org> Date: Mon May 27 17:57:01 2013 +0200 waf: build position independent executables This patch re-instates support for building Position Independent Executables using the '-fPIE' and '-pie' compiler and linker flags respectively. PIE builds are enabled by default, and can be explicitly disabled using the '--without-pie' configure argument. Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Tue May 28 02:56:36 CEST 2013 on sn-devel-104 commit 097ec587523df24e6a4d016cd1547de6dac17d67 Author: David Disseldorp <dd...@samba.org> Date: Mon May 27 17:57:00 2013 +0200 waf: add --with[out]-pie configure arguments The arguments do not currently have any effect. Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 0996e95c00ffc468e6482877f21bae3a0f01abe9 Author: Michael Adam <ob...@samba.org> Date: Tue May 28 12:19:34 2013 +0200 build: Add missing new line to replaced python shebang line. (Fix bug #9909) When configuring with a non-standard python specified in the PYTHON environment variable, the shebang lines in various python tools like samba-tool and samba_dnsupdate get replaced. This replace line for the shebang was missing a newline which joined the shebang line with the following line, rendereing those scripts with a nonempty second line unusuable, for example samba_dnsupdate. This patch fixes this bug which is bug #9909 on bugzilla. Pair-Programmed-With: Karolin Seeger <ksee...@samba.org> Signed-off-by: Michael Adam <ob...@samba.org> Signed-off-by: Karolin Seeger <ksee...@samba.org> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Michael Adam <ob...@samba.org> Autobuild-Date(master): Wed May 29 13:21:51 CEST 2013 on sn-devel-104 (cherry picked from commit 3f24d694e7e2190d30a17bc13a79a36b49711531) ----------------------------------------------------------------------- Summary of changes: buildtools/wafsamba/wafsamba.py | 15 +++++++++++---- wscript | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) Changeset truncated at 500 lines: diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py index 3559cc1..47393ad 100644 --- a/buildtools/wafsamba/wafsamba.py +++ b/buildtools/wafsamba/wafsamba.py @@ -342,6 +342,13 @@ def SAMBA_BINARY(bld, binname, source, else: subsystem_group = group + # only specify PIE flags for binaries + pie_cflags = cflags + pie_ldflags = TO_LIST(ldflags) + if bld.env['ENABLE_PIE'] == True: + pie_cflags += ' -fPIE' + pie_ldflags.extend(TO_LIST('-pie')) + # first create a target for building the object files for this binary # by separating in this way, we avoid recompiling the C files # separately for the install binary and the build binary @@ -349,7 +356,7 @@ def SAMBA_BINARY(bld, binname, source, source = source, deps = deps, includes = includes, - cflags = cflags, + cflags = pie_cflags, group = subsystem_group, autoproto = autoproto, subsystem_name = subsystem_name, @@ -379,7 +386,7 @@ def SAMBA_BINARY(bld, binname, source, install_path = None, samba_inst_path= install_path, samba_install = install, - samba_ldflags = TO_LIST(ldflags) + samba_ldflags = pie_ldflags ) if manpages is not None and 'XSLTPROC_MANPAGES' in bld.env and bld.env['XSLTPROC_MANPAGES']: @@ -699,9 +706,9 @@ sys.path.insert(1, "%s")""" % (task.env["PYTHONARCHDIR"], task.env["PYTHONDIR"]) shebang = None if task.env["PYTHON"][0] == "/": - replacement_shebang = "#!%s" % task.env["PYTHON"] + replacement_shebang = "#!%s\n" % task.env["PYTHON"] else: - replacement_shebang = "#!/usr/bin/env %s" % task.env["PYTHON"] + replacement_shebang = "#!/usr/bin/env %s\n" % task.env["PYTHON"] installed_location=task.outputs[0].bldpath(task.env) source_file = open(task.inputs[0].srcpath(task.env)) diff --git a/wscript b/wscript index a9954ed..087e950 100644 --- a/wscript +++ b/wscript @@ -56,6 +56,14 @@ def set_options(opt): help='disable AD DC functionality (enables Samba 4 client and Samba 3 code base).', action='store_true', dest='without_ad_dc', default=False) + opt.add_option('--with-pie', + 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') + gr = opt.option_group('developer options') opt.add_option('--disable-ntdb', @@ -168,6 +176,15 @@ def configure(conf): conf.SAMBA_CONFIG_H('include/config.h') + 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''' -- Samba Shared Repository