diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py index 909e836fdb04..1ea818ef3098 100644 --- a/buildtools/wafsamba/samba_autoconf.py +++ b/buildtools/wafsamba/samba_autoconf.py @@ -712,3 +712,15 @@ def SETUP_CONFIGURE_CACHE(conf, enable): preproc.recursion_limit = 1 # in either case we don't need to scan system includes preproc.go_absolute = False + + +@conf +def SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS(conf): + # we don't want any libraries or modules to rely on runtime + # resolution of symbols + if sys.platform != "openbsd4": + conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True) + + if sys.platform != "openbsd4" and conf.env.undefined_ignore_ldflags == []: + if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']): + conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup'] diff --git a/lib/ldb/wscript b/lib/ldb/wscript index a3af27515cb4..088292cd9ea5 100755 --- a/lib/ldb/wscript +++ b/lib/ldb/wscript @@ -75,6 +75,8 @@ def configure(conf): conf.SAMBA_CONFIG_H() + conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS() + def build(bld): bld.RECURSE('lib/tdb_compat') bld.RECURSE('lib/tevent') diff --git a/lib/talloc/wscript b/lib/talloc/wscript index 72e954ad6505..447406bf6e7a 100644 --- a/lib/talloc/wscript +++ b/lib/talloc/wscript @@ -67,6 +67,8 @@ def configure(conf): conf.SAMBA_CONFIG_H() + conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS() + def build(bld): bld.RECURSE('lib/replace') diff --git a/lib/tdb/wscript b/lib/tdb/wscript index 678d2f2847ab..ebbab2cc9210 100644 --- a/lib/tdb/wscript +++ b/lib/tdb/wscript @@ -55,6 +55,8 @@ def configure(conf): conf.SAMBA_CONFIG_H() + conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS() + def build(bld): bld.RECURSE('lib/replace') diff --git a/lib/tevent/wscript b/lib/tevent/wscript index 63b27e542ee3..6f94d803b506 100644 --- a/lib/tevent/wscript +++ b/lib/tevent/wscript @@ -58,6 +58,8 @@ def configure(conf): conf.SAMBA_CONFIG_H() + conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS() + def build(bld): bld.RECURSE('lib/replace') bld.RECURSE('lib/talloc') diff --git a/wscript b/wscript index fb9cc4096d04..5ccb74d91dba 100755 --- a/wscript +++ b/wscript @@ -101,15 +101,7 @@ def configure(conf): conf.RECURSE('selftest') conf.RECURSE('source3') - # we don't want any libraries or modules to rely on runtime - # resolution of symbols - if sys.platform != "openbsd4": - conf.env.undefined_ldflags = conf.ADD_LDFLAGS('-Wl,-no-undefined', testflags=True) - - if sys.platform != "openbsd4" and conf.env.undefined_ignore_ldflags == []: - if conf.CHECK_LDFLAGS(['-undefined', 'dynamic_lookup']): - conf.env.undefined_ignore_ldflags = ['-undefined', 'dynamic_lookup'] - + conf.SAMBA_CHECK_UNDEFINED_SYMBOL_FLAGS() # gentoo always adds this. We want our normal build to be as # strict as the strictest OS we support, so adding this here