From ec3cbb6c476698523c9b5ac047787df101746891 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 5 Nov 2012 19:36:30 +0100 Subject: wafsamba.abi: Fix abi_match with both excludes and includes. This fixes a regression introduced by 9c3e294400234ebdf9b98031bae583524fd0b0ac which caused internal symbols in libldb to be exposed. Bug: https://bugzilla.samba.org/show_bug.cgi?id=9357 Signed-off-by: Andrew Bartlett Reviewed-by: Andrew Bartlett Reviewed-by: Stephen Gallagher --- buildtools/wafsamba/samba_abi.py | 6 +++--- buildtools/wafsamba/tests/test_abi.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) (limited to 'buildtools') diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py index c325b3323e..488dab8837 100644 --- a/buildtools/wafsamba/samba_abi.py +++ b/buildtools/wafsamba/samba_abi.py @@ -191,12 +191,12 @@ def abi_write_vscript(f, libname, current_version, versions, symmap, abi_match): f.write("\t\t%s;\n" % x) else: f.write("\t\t*;\n") - if len(local_abi) > 0: + if abi_match != ["*"]: f.write("\tlocal:\n") for x in local_abi: f.write("\t\t%s;\n" % x[1:]) - elif abi_match != ["*"]: - f.write("\tlocal: *;\n") + if len(global_abi) > 0: + f.write("\t\t*;\n") f.write("};\n") diff --git a/buildtools/wafsamba/tests/test_abi.py b/buildtools/wafsamba/tests/test_abi.py index 42c4697cde..bba78c1ba0 100644 --- a/buildtools/wafsamba/tests/test_abi.py +++ b/buildtools/wafsamba/tests/test_abi.py @@ -100,4 +100,21 @@ MYLIB_0.1 { \tlocal: \t\texc_*; }; +""") + + def test_excludes_and_includes(self): + f = StringIO() + abi_write_vscript(f, "MYLIB", "1.0", [], { + "pub_foo": "1.0", + "exc_bar": "1.0", + "other": "1.0" + }, ["pub_*", "!exc_*"]) + self.assertEquals(f.getvalue(), """\ +1.0 { +\tglobal: +\t\tpub_*; +\tlocal: +\t\texc_*; +\t\t*; +}; """) -- cgit