summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2011-02-15 16:15:15 +1100
committerAndrew Tridgell <tridge@samba.org>2011-02-18 15:09:46 +1100
commit8ef9cb0bedd88177c7880f7441df77a989b7b046 (patch)
tree948f5aa0c955cbdbb368b82b724b4ad5a78ac2e4
parentb31055189ad953e2055d99caff3f8490613b96b4 (diff)
downloadsamba-8ef9cb0bedd88177c7880f7441df77a989b7b046.tar.gz
samba-8ef9cb0bedd88177c7880f7441df77a989b7b046.tar.bz2
samba-8ef9cb0bedd88177c7880f7441df77a989b7b046.zip
build: added allow_undefined_symbols options for libraries and modules
the s4 build uses linker flags to disallow undefined symbols in libraries. To accomodate s3 libraries in the top level build we need to be able to disable this on a per-library basis. Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--buildtools/wafsamba/samba_deps.py6
-rw-r--r--buildtools/wafsamba/wafsamba.py6
2 files changed, 10 insertions, 2 deletions
diff --git a/buildtools/wafsamba/samba_deps.py b/buildtools/wafsamba/samba_deps.py
index 02f23183e7..a3968ada83 100644
--- a/buildtools/wafsamba/samba_deps.py
+++ b/buildtools/wafsamba/samba_deps.py
@@ -85,6 +85,10 @@ def build_dependencies(self):
new_ldflags.extend(ldflags)
self.ldflags = new_ldflags
+ if getattr(self, 'allow_undefined_symbols', False) and self.env.undefined_ldflags:
+ for f in self.env.undefined_ldflags:
+ self.ldflags.remove(f)
+
debug('deps: computed dependencies for target %s: uselib=%s uselib_local=%s add_objects=%s',
self.sname, self.uselib, self.uselib_local, self.add_objects)
@@ -954,7 +958,7 @@ def show_object_duplicates(bld, tgt_list):
# this provides a way to save our dependency calculations between runs
savedeps_version = 3
savedeps_inputs = ['samba_deps', 'samba_includes', 'local_include', 'local_include_first', 'samba_cflags',
- 'source', 'grouping_library', 'samba_ldflags']
+ 'source', 'grouping_library', 'samba_ldflags', 'allow_undefined_symbols' ]
savedeps_outputs = ['uselib', 'uselib_local', 'add_objects', 'includes', 'ccflags', 'ldflags', 'samba_deps_extended']
savedeps_outenv = ['INC_PATHS']
savedeps_envvars = ['NONSHARED_BINARIES', 'GLOBAL_DEPENDENCIES', 'EXTRA_CFLAGS', 'EXTRA_LDFLAGS', 'EXTRA_INCLUDES' ]
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index c04be69e50..86eb730d5d 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -124,6 +124,7 @@ def SAMBA_LIBRARY(bld, libname, source,
manpages=None,
private_library=False,
grouping_library=False,
+ allow_undefined_symbols=False,
enabled=True):
'''define a Samba library'''
@@ -245,7 +246,8 @@ def SAMBA_LIBRARY(bld, libname, source,
abi_directory = "%s/%s" % (bld.path.abspath(), abi_directory),
abi_match = abi_match,
private_library = private_library,
- grouping_library=grouping_library
+ grouping_library=grouping_library,
+ allow_undefined_symbols=allow_undefined_symbols
)
if realname and not link_name:
@@ -371,6 +373,7 @@ def SAMBA_MODULE(bld, modname, source,
vars=None,
enabled=True,
pyembed=False,
+ allow_undefined_symbols=False
):
'''define a Samba module.'''
@@ -423,6 +426,7 @@ def SAMBA_MODULE(bld, modname, source,
link_name=build_link_name,
install_path="${MODULESDIR}/%s" % subsystem,
pyembed=pyembed,
+ allow_undefined_symbols=allow_undefined_symbols
)