summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2011-03-12 01:58:17 +0100
committerJelmer Vernooij <jelmer@samba.org>2011-03-12 02:45:20 +0100
commita051b400756fa9dc5f6d61b49b2886cf00be5081 (patch)
tree866e0a678b20f19bebb6f6060728f0c8dc0637bf
parent1d1e5cbd27e3253eb77c04a832eab6ede5d67826 (diff)
downloadsamba-a051b400756fa9dc5f6d61b49b2886cf00be5081.tar.gz
samba-a051b400756fa9dc5f6d61b49b2886cf00be5081.tar.xz
samba-a051b400756fa9dc5f6d61b49b2886cf00be5081.zip
samba_abi: Also sort ABI files properly so symbols end up in the right version.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org> Autobuild-Date: Sat Mar 12 02:45:20 CET 2011 on sn-devel-104
-rw-r--r--buildtools/wafsamba/samba_abi.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py
index 05b5d4e5cb..990e1e5fdf 100644
--- a/buildtools/wafsamba/samba_abi.py
+++ b/buildtools/wafsamba/samba_abi.py
@@ -10,6 +10,8 @@ abi_type_maps = {
'struct __va_list_tag *' : 'va_list'
}
+version_key = lambda x: map(int, x.split("."))
+
def normalise_signature(sig):
'''normalise a signature from gdb'''
sig = sig.strip()
@@ -162,7 +164,7 @@ def abi_write_vscript(vscript, libname, current_version, versions, symmap, abi_m
f = open(vscript, mode='w')
last_key = ""
- versions = sorted(versions, key=lambda x: map(int, x.split(".")))
+ versions = sorted(versions, key=version_key)
for k in versions:
symver = "%s_%s" % (libname, k)
if symver == current_version:
@@ -205,7 +207,9 @@ def ABI_VSCRIPT(bld, libname, abi_directory, version, vscript, abi_match=None):
'''generate a vscript file for our public libraries'''
if abi_directory:
source = bld.path.ant_glob('%s/%s-[0-9]*.sigs' % (abi_directory, libname))
- source = sorted(source.split())
+ def abi_file_key(path):
+ return version_key(path[:-len(".sigs")].rsplit("-")[-1])
+ source = sorted(source.split(), key=abi_file_key)
else:
source = ''