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"),