summaryrefslogtreecommitdiff
path: root/buildtools
diff options
context:
space:
mode:
authorAlexander Bokovoy <ab@samba.org>2013-04-03 15:52:06 +0300
committerAndreas Schneider <asn@cryptomilk.org>2013-04-09 20:29:18 +0200
commit6058bc9bb6ac315fbe7cb18e1d07a846f7849e22 (patch)
treea7a83f4e397e5081bb4c4c5330fb1fe1581ece70 /buildtools
parent28da1af476853e6b49765bd04a496163e8ebd448 (diff)
downloadsamba-6058bc9bb6ac315fbe7cb18e1d07a846f7849e22.tar.gz
samba-6058bc9bb6ac315fbe7cb18e1d07a846f7849e22.tar.bz2
samba-6058bc9bb6ac315fbe7cb18e1d07a846f7849e22.zip
wafsamba: fix samba_abi for default catch-all case
Only filter out the symbol when positive match was not found and there is negative match. ABI signature file generator worked incorrectly for cases when mixture of positive and negative matches were provided. This resulted in generating empty signature file for libpdb since there was no catch-all positive match anymore. Commit 9ba44cc610426fb558b49aa9680b5bdf55c29082 removed explicit '*' positive match and corresponding vscript generator adds '*' by default if global match list is empty, so this commit introduces feature parity into signature generator. Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'buildtools')
-rw-r--r--buildtools/wafsamba/samba_abi.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py
index 488dab8837..76acd00677 100644
--- a/buildtools/wafsamba/samba_abi.py
+++ b/buildtools/wafsamba/samba_abi.py
@@ -50,13 +50,15 @@ def parse_sigs(sigs, abi_match):
sa = s.split(':')
if abi_match:
matched = False
+ negative = False
for p in abi_match:
if p[0] == '!' and fnmatch.fnmatch(sa[0], p[1:]):
+ negative = True
break
elif fnmatch.fnmatch(sa[0], p):
matched = True
break
- if not matched:
+ if (not matched) and negative:
continue
Logs.debug("%s -> %s" % (sa[1], normalise_signature(sa[1])))
ret[sa[0]] = normalise_signature(sa[1])