mirror of
https://github.com/samba-team/samba.git
synced 2025-01-03 01:18:10 +03:00
wafsamba: Fix ABI symbol name generation
Commit0bc5b6f293
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 <metze@samba.org> Signed-off-by: Andreas Schneider <asn@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Günther Deschner <gd@samba.org> Autobuild-User(master): Douglas Bagnall <dbagnall@samba.org> Autobuild-Date(master): Tue Aug 6 00:42:56 UTC 2024 on atb-devel-224 (cherry picked from commit46215ab1b3
)
This commit is contained in:
parent
5ba371e09a
commit
6d69562e27
@ -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,
|
||||
|
@ -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"),
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user