The branch, master has been updated
via 46215ab1b34 wafsamba: Fix ABI symbol name generation
from de2f76fa47e vfs_ceph_new: Unconditionally use ceph_select_filesystem
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 46215ab1b34aa79c4c831ea1c12f73eacf1e8a12
Author: Andreas Schneider <[email protected]>
Date: Mon Aug 5 14:51:01 2024 +0200
wafsamba: Fix ABI symbol name generation
Commit 0bc5b6f29307ce758774c1b2f48ce62315fdc7f9 changed the script
for generating the ABI symbol version. It broke the ABI by changing all
dots to underscores.
This reverts the commit partially to preserve the dots in the version
part.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15673
Pair-Programmed-With: Stefan Metzmacher <[email protected]>
Signed-off-by: Andreas Schneider <[email protected]>
Signed-off-by: Stefan Metzmacher <[email protected]>
Reviewed-by: Douglas Bagnall <[email protected]>
Reviewed-by: Günther Deschner <[email protected]>
Autobuild-User(master): Douglas Bagnall <[email protected]>
Autobuild-Date(master): Tue Aug 6 00:42:56 UTC 2024 on atb-devel-224
-----------------------------------------------------------------------
Summary of changes:
buildtools/wafsamba/samba_abi.py | 6 +++---
script/autobuild.py | 11 +++++++++++
2 files changed, 14 insertions(+), 3 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildtools/wafsamba/samba_abi.py b/buildtools/wafsamba/samba_abi.py
index c82ba3424f9..e6deb839c0c 100644
--- a/buildtools/wafsamba/samba_abi.py
+++ b/buildtools/wafsamba/samba_abi.py
@@ -286,7 +286,7 @@ def abi_build_vscript(task):
f.close()
def VSCRIPT_MAP_PRIVATE(bld, libname, orig_vscript, version, private_vscript):
- version = re.sub(r'\W', '_', version).upper()
+ version = re.sub(r'[^.\w]', '_', version).upper()
t = bld.SAMBA_GENERATOR(private_vscript,
rule=abi_build_vscript,
source=orig_vscript,
@@ -314,8 +314,8 @@ def ABI_VSCRIPT(bld, libname, abi_directory, version,
vscript, abi_match=None, p
libname = os.path.basename(libname)
version = os.path.basename(version)
- libname = re.sub(r'\W', '_', libname).upper()
- version = re.sub(r'\W', '_', version).upper()
+ libname = re.sub(r'[^.\w]', '_', libname).upper()
+ version = re.sub(r'[^.\w]', '_', version).upper()
t = bld.SAMBA_GENERATOR(vscript,
rule=abi_build_vscript,
diff --git a/script/autobuild.py b/script/autobuild.py
index a62ac8c162f..6a9864f6f89 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -138,6 +138,13 @@ def check_symbols(sofile, expected_symbols=""):
return "objdump --dynamic-syms " + sofile + " | " + \
"awk \'$0 !~ /" + expected_symbols + "/ {if ($2 == \"g\" && $3 ~
/D(F|O)/ && $4 ~ /(.bss|.text)/ && $7 !~ /(__gcov_|mangle_path)/) exit 1}\'"
+def check_versioned_symbol(sofile, symvol, version):
+ return "objdump --dynamic-syms " + sofile + " | " + \
+ "awk \'$7 == \"" + symvol + "\" { " + \
+ "if ($2 == \"g\" && $3 ~ /D(F|O)/ && $4 ~ /(.bss|.text)/ && "
+ \
+ "$6 == \"" + version + "\") print $0 }\'" + \
+ "| wc -l | grep -q \'^1$\'"
+
if args:
# If we are only running specific test,
# do not sleep randomly to wait for it to start
@@ -903,12 +910,16 @@ tasks = {
check_symbols("./bin/plugins/libnss_wins.so.2", "_nss_wins_")),
("nondevel-no-public-libwbclient",
check_symbols("./bin/shared/libwbclient.so.0", "wbc")),
+ ("nondevel-libwbclient-wbcCtxPingDc2@WBCLIENT_0.12",
+ check_versioned_symbol("./bin/shared/libwbclient.so.0",
"wbcCtxPingDc2", "WBCLIENT_0.12")),
("nondevel-no-public-pam_winbind",
check_symbols("./bin/plugins/pam_winbind.so", "pam_sm_")),
("nondevel-no-public-winbind_krb5_locator",
check_symbols("./bin/plugins/winbind_krb5_locator.so",
"service_locator")),
("nondevel-no-public-async_dns_krb5_locator",
check_symbols("./bin/plugins/async_dns_krb5_locator.so",
"service_locator")),
+ ("nondevel-libndr-krb5pac-ndr_pull_PAC_DATA@NDR_KRB5PAC_0.0.1",
+ check_versioned_symbol("./bin/shared/libndr-krb5pac.so.0",
"ndr_pull_PAC_DATA", "NDR_KRB5PAC_0.0.1")),
("nondevel-install", "make -j install"),
("nondevel-dist", "make dist"),
--
Samba Shared Repository