diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-12-09 11:10:45 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-12-09 13:17:19 +1100 |
commit | ebe2867fc2c01fb5288d62eedb0e2f43788b9f27 (patch) | |
tree | 7107cdb3efebf7b13aa591442c2b5ef0484674fd /buildtools/wafsamba/wafsamba.py | |
parent | 2771266defbf92373787e7f0fb795de713a02770 (diff) | |
download | samba-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.py | 22 |
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 |