summaryrefslogtreecommitdiff
path: root/buildtools/wafsamba/wafsamba.py
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-12-09 11:10:45 +1100
committerAndrew Tridgell <tridge@samba.org>2010-12-09 13:17:19 +1100
commitebe2867fc2c01fb5288d62eedb0e2f43788b9f27 (patch)
tree7107cdb3efebf7b13aa591442c2b5ef0484674fd /buildtools/wafsamba/wafsamba.py
parent2771266defbf92373787e7f0fb795de713a02770 (diff)
downloadsamba-ebe2867fc2c01fb5288d62eedb0e2f43788b9f27.tar.gz
samba-ebe2867fc2c01fb5288d62eedb0e2f43788b9f27.tar.bz2
samba-ebe2867fc2c01fb5288d62eedb0e2f43788b9f27.zip
waf-abi: auto-generate per-symbol versions from ABI files
This changes our version-script generation to use the ABI files that are saved in git with each version number change of our public libraries. We use these ABI files to generate a linker version script that gives the exact version number that each symbol was introduced. This provides us with automatic fine grained symbol versioning. Pair-Programmed-With: Jelmer Vernooij <jelmer@samba.org> Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'buildtools/wafsamba/wafsamba.py')
-rw-r--r--buildtools/wafsamba/wafsamba.py22
1 files changed, 8 insertions, 14 deletions
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index e7a23fb169..aea9d2bf30 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -118,7 +118,7 @@ def SAMBA_LIBRARY(bld, libname, source,
target_type='LIBRARY',
bundled_extension=True,
link_name=None,
- abi_file=None,
+ abi_directory=None,
abi_match=None,
hide_symbols=False,
manpages=None,
@@ -200,14 +200,6 @@ def SAMBA_LIBRARY(bld, libname, source,
else:
version = "%s_%s" % (Utils.g_module.APPNAME, Utils.g_module.VERSION.split(".")[0])
- if bld.env.HAVE_LD_VERSION_SCRIPT:
- vscript = "%s.vscript" % libname
- bld.SAMBA_GENERATOR(vscript,
- rule="echo %s \{ global: \*\; \}\; > ${TGT}" % version.replace("-","_").replace("+","_").upper(),
- group='vscripts',
- target=vscript)
- ldflags.append("-Wl,--version-script=%s/%s" % (bld.path.abspath(bld.env), vscript))
-
features = 'cc cshlib symlink_lib install_lib'
if target_type == 'PYTHON':
features += ' pyext'
@@ -215,11 +207,13 @@ def SAMBA_LIBRARY(bld, libname, source,
# this is quite strange. we should add pyext feature for pyext
# but that breaks the build. This may be a bug in the waf python tool
features += ' pyembed'
- if abi_file:
- features += ' abi_check'
- if abi_file:
- abi_file = os.path.join(bld.curdir, abi_file)
+ if abi_directory:
+ features += ' abi_check'
+ if bld.env.HAVE_LD_VERSION_SCRIPT:
+ vscript = "%s.vscript" % libname
+ bld.ABI_VSCRIPT(libname, abi_directory, vnum, vscript)
+ ldflags.append("-Wl,--version-script=%s/%s" % (bld.path.abspath(bld.env), vscript))
bld.SET_BUILD_GROUP(group)
t = bld(
@@ -238,7 +232,7 @@ def SAMBA_LIBRARY(bld, libname, source,
name = libname,
samba_realname = realname,
samba_install = install,
- abi_file = abi_file,
+ abi_directory = abi_directory,
abi_match = abi_match,
private_library = private_library,
grouping_library=grouping_library