Successfully identified regression in *glibc* in CI configuration tcwg_cross/gnu-master-aarch64-build_cross. So far, this commit has regressed CI configurations:
- tcwg_cross/gnu-master-aarch64-build_cross
Culprit:
<cut>
commit b46cfcef3f7dab8e90729c6616ac1420f2642245
Author: Joseph Myers <joseph(a)codesourcery.com>
Date: Wed Jul 7 13:24:05 2021 +0000
Update kernel version to 5.13 in tst-mman-consts.py
This patch updates the kernel version in the test tst-mman-consts.py
to 5.13. (There are no new MAP_* constants covered by this test in
5.13 that need any other header changes.)
Tested with build-many-glibcs.py.
</cut>
Results regressed to (for first_bad == b46cfcef3f7dab8e90729c6616ac1420f2642245)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# First few build errors in logs:
# 00:00:18 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid register name for ‘_x0’
# 00:00:18 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid register name for ‘_x8’
# 00:00:18 ../sysdeps/aarch64/nptl/tls.h:95:21: error: ‘__builtin_thread_pointer’ is not supported on this target
# 00:00:18 ../sysdeps/aarch64/nptl/tls.h:91:19: error: ‘__builtin_thread_pointer’ is not supported on this target
# 00:00:18 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crti.o] Error 1
# 00:00:18 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:9: /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/libc-start.o] Error 1
# 00:00:18 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.o] Error 1
# 00:00:18 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid register name for ‘_x0’
# 00:00:18 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid register name for ‘_x8’
# 00:00:18 ../sysdeps/aarch64/nptl/tls.h:95:21: error: ‘__builtin_thread_pointer’ is not supported on this target
from (for last_good == fab3a6daf137c734e684471e197148aa058102e3)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# build_abe glibc:
4
# build_abe stage2:
5
# build_abe qemu:
6
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build top page/logs: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Configuration details:
Reproduce builds:
<cut>
mkdir investigate-glibc-b46cfcef3f7dab8e90729c6616ac1420f2642245
cd investigate-glibc-b46cfcef3f7dab8e90729c6616ac1420f2642245
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh
cd glibc
# Reproduce first_bad build
git checkout --detach b46cfcef3f7dab8e90729c6616ac1420f2642245
../artifacts/test.sh
# Reproduce last_good build
git checkout --detach fab3a6daf137c734e684471e197148aa058102e3
../artifacts/test.sh
cd ..
</cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/…
Artifacts: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build log: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Full commit (up to 1000 lines):
<cut>
commit b46cfcef3f7dab8e90729c6616ac1420f2642245
Author: Joseph Myers <joseph(a)codesourcery.com>
Date: Wed Jul 7 13:24:05 2021 +0000
Update kernel version to 5.13 in tst-mman-consts.py
This patch updates the kernel version in the test tst-mman-consts.py
to 5.13. (There are no new MAP_* constants covered by this test in
5.13 that need any other header changes.)
Tested with build-many-glibcs.py.
---
sysdeps/unix/sysv/linux/tst-mman-consts.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/unix/sysv/linux/tst-mman-consts.py b/sysdeps/unix/sysv/linux/tst-mman-consts.py
index fec7c9b8da..ee5b13ee12 100644
--- a/sysdeps/unix/sysv/linux/tst-mman-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-mman-consts.py
@@ -33,7 +33,7 @@ def main():
help='C compiler (including options) to use')
args = parser.parse_args()
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- linux_version_glibc = (5, 12)
+ linux_version_glibc = (5, 13)
sys.exit(glibcextract.compare_macro_consts(
'#define _GNU_SOURCE 1\n'
'#include <sys/mman.h>\n',
</cut>
Successfully identified regression in *glibc* in CI configuration tcwg_cross/gnu-master-aarch64-build_cross. So far, this commit has regressed CI configurations:
- tcwg_cross/gnu-master-aarch64-build_cross
Culprit:
<cut>
commit 7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Jul 7 08:40:41 2021 +0200
elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols
They are no longer needed after everything has been moved into
libc. The _dl_vsym test has to be removed because the symbol
cannot be used outside libc anymore.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
</cut>
Results regressed to (for first_bad == 7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# First few build errors in logs:
# 00:00:14 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.o] Error 1
# 00:00:14 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:499: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.os] Error 1
# 00:00:14 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crtn.o] Error 1
# 00:00:14 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crti.o] Error 1
# 00:00:14 make[2]: *** [../o-iterator.mk:9: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.o] Error 1
# 00:00:14 make[2]: *** [../o-iterator.mk:9: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.os] Error 1
# 00:00:14 ../sysdeps/aarch64/nptl/tls.h:91:19: error: ‘__builtin_thread_pointer’ is not supported on this target
# 00:00:14 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:485: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/libc-tls.o] Error 1
# 00:00:14 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid register name for ‘_x0’
# 00:00:14 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid register name for ‘_x8’
from (for last_good == ceda365fbac3083e16eed07892fbd5970b3839a0)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# build_abe glibc:
4
# build_abe stage2:
5
# build_abe qemu:
6
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build top page/logs: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Configuration details:
Reproduce builds:
<cut>
mkdir investigate-glibc-7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8
cd investigate-glibc-7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh
cd glibc
# Reproduce first_bad build
git checkout --detach 7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8
../artifacts/test.sh
# Reproduce last_good build
git checkout --detach ceda365fbac3083e16eed07892fbd5970b3839a0
../artifacts/test.sh
cd ..
</cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/…
Artifacts: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build log: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Full commit (up to 1000 lines):
<cut>
commit 7a5db2e82fbb6c3a6e3fdae02b7166c5d0e8c7a8
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Jul 7 08:40:41 2021 +0200
elf: Clean up GLIBC_PRIVATE exports of internal libdl symbols
They are no longer needed after everything has been moved into
libc. The _dl_vsym test has to be removed because the symbol
cannot be used outside libc anymore.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
---
dlfcn/dlerror.c | 1 -
elf/Makefile | 16 ++----
elf/Versions | 3 -
elf/dl-addr.c | 1 -
elf/dl-libc.c | 4 --
elf/dl-sym.c | 2 -
elf/tst-libc_dlvsym-dso.c | 25 ---------
elf/tst-libc_dlvsym-static.c | 32 -----------
elf/tst-libc_dlvsym.c | 34 -----------
elf/tst-libc_dlvsym.h | 130 -------------------------------------------
include/dlfcn.h | 30 +++++-----
11 files changed, 18 insertions(+), 260 deletions(-)
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c
index d0194a7cef..5047b14066 100644
--- a/dlfcn/dlerror.c
+++ b/dlfcn/dlerror.c
@@ -196,4 +196,3 @@ _dlerror_run (void (*operate) (void *), void *args)
return 1;
}
}
-libc_hidden_def (_dlerror_run)
diff --git a/elf/Makefile b/elf/Makefile
index 698a6ab985..b1e01d9516 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -165,7 +165,7 @@ tests-static-normal := tst-leaks1-static tst-array1-static tst-array5-static \
tests-static-internal := tst-tls1-static tst-tls2-static \
tst-ptrguard1-static tst-stackguard1-static \
- tst-tls1-static-non-pie tst-libc_dlvsym-static
+ tst-tls1-static-non-pie
CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o
tst-tls1-static-non-pie-no-pie = yes
@@ -229,7 +229,7 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \
tests-internal += loadtest unload unload2 circleload1 \
neededtest neededtest2 neededtest3 neededtest4 \
tst-tls3 tst-tls6 tst-tls7 tst-tls8 tst-dlmopen2 \
- tst-ptrguard1 tst-stackguard1 tst-libc_dlvsym \
+ tst-ptrguard1 tst-stackguard1 \
tst-create_format1 tst-tls-surplus tst-dl-hwcaps_split
tests-container += tst-pldd tst-dlopen-tlsmodid-container \
tst-dlopen-self-container tst-preload-pthread-libc
@@ -326,7 +326,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
tst-audit12mod1 tst-audit12mod2 tst-audit12mod3 tst-auditmod12 \
tst-latepthreadmod $(tst-tls-many-dynamic-modules) \
tst-nodelete-dlclose-dso tst-nodelete-dlclose-plugin \
- tst-main1mod tst-libc_dlvsym-dso tst-absolute-sym-lib \
+ tst-main1mod tst-absolute-sym-lib \
tst-absolute-zero-lib tst-big-note-lib tst-unwind-ctor-lib \
tst-audit13mod1 tst-sonamemove-linkmod1 \
tst-sonamemove-runmod1 tst-sonamemove-runmod2 \
@@ -352,7 +352,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
# Most modules build with _ISOMAC defined, but those filtered out
# depend on internal headers.
-modules-names-tests = $(filter-out ifuncmod% tst-libc_dlvsym-dso tst-tlsmod%,\
+modules-names-tests = $(filter-out ifuncmod% tst-tlsmod%,\
$(modules-names))
ifeq (yes,$(have-mtls-dialect-gnu2))
@@ -1582,14 +1582,6 @@ LDLIBS-tst-absolute-zero-lib.so = tst-absolute-zero-lib.lds
$(objpfx)tst-absolute-zero-lib.so: $(LDLIBS-tst-absolute-zero-lib.so)
$(objpfx)tst-absolute-zero: $(objpfx)tst-absolute-zero-lib.so
-# Both the main program and the DSO for tst-libc_dlvsym need to link
-# against libdl.
-$(objpfx)tst-libc_dlvsym-dso.so: $(libsupport)
-$(objpfx)tst-libc_dlvsym.out: $(objpfx)tst-libc_dlvsym-dso.so
-tst-libc_dlvsym-static-ENV = \
- LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn
-$(objpfx)tst-libc_dlvsym-static.out: $(objpfx)tst-libc_dlvsym-dso.so
-
$(objpfx)tst-big-note: $(objpfx)tst-big-note-lib.so
# Avoid creating an ABI tag note, which may come before the
# artificial, large note in tst-big-note-lib.o and invalidate the
diff --git a/elf/Versions b/elf/Versions
index a12d64e8db..775aab62af 100644
--- a/elf/Versions
+++ b/elf/Versions
@@ -22,9 +22,6 @@ libc {
%endif
GLIBC_PRIVATE {
# functions used in other libraries
- _dl_addr;
- _dl_sym; _dl_vsym;
- __libc_dlclose; __libc_dlopen_mode; __libc_dlsym; __libc_dlvsym;
__libc_early_init;
# Internal error handling support. Interposes the functions in ld.so.
diff --git a/elf/dl-addr.c b/elf/dl-addr.c
index 70a60d5b91..3226880d48 100644
--- a/elf/dl-addr.c
+++ b/elf/dl-addr.c
@@ -142,4 +142,3 @@ _dl_addr (const void *address, Dl_info *info,
return result;
}
-libc_hidden_def (_dl_addr)
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index ba792e9589..d5bc4a277f 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -162,7 +162,6 @@ __libc_dlopen_mode (const char *name, int mode)
#endif
return dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map;
}
-libc_hidden_def (__libc_dlopen_mode)
#ifndef SHARED
void *
@@ -192,7 +191,6 @@ __libc_dlsym (void *map, const char *name)
return (dlerror_run (do_dlsym, &args) ? NULL
: (void *) (DL_SYMBOL_ADDRESS (args.loadbase, args.ref)));
}
-libc_hidden_def (__libc_dlsym)
/* Replacement for dlvsym. MAP must be a real map. This function
returns NULL without setting the dlerror value in case of static
@@ -219,7 +217,6 @@ __libc_dlvsym (void *map, const char *name, const char *version)
: (void *) (DL_SYMBOL_ADDRESS (args.dlsym.loadbase,
args.dlsym.ref)));
}
-libc_hidden_def (__libc_dlvsym)
int
__libc_dlclose (void *map)
@@ -230,7 +227,6 @@ __libc_dlclose (void *map)
#endif
return dlerror_run (do_dlclose, map);
}
-libc_hidden_def (__libc_dlclose)
static bool __libc_freeres_fn_section
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index fa0cce678f..de5769f926 100644
--- a/elf/dl-sym.c
+++ b/elf/dl-sym.c
@@ -188,11 +188,9 @@ _dl_vsym (void *handle, const char *name, const char *version, void *who)
return do_sym (handle, name, who, &vers, 0);
}
-libc_hidden_def (_dl_vsym)
void *
_dl_sym (void *handle, const char *name, void *who)
{
return do_sym (handle, name, who, NULL, DL_LOOKUP_RETURN_NEWEST);
}
-libc_hidden_def (_dl_sym)
diff --git a/elf/tst-libc_dlvsym-dso.c b/elf/tst-libc_dlvsym-dso.c
deleted file mode 100644
index 19091ddb41..0000000000
--- a/elf/tst-libc_dlvsym-dso.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Compare dlvsym and __libc_dlvsym results. Shared object code.
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include "tst-libc_dlvsym.h"
-
-void
-compare_vsyms_global (void)
-{
- compare_vsyms ();
-}
diff --git a/elf/tst-libc_dlvsym-static.c b/elf/tst-libc_dlvsym-static.c
deleted file mode 100644
index 19c438c3cd..0000000000
--- a/elf/tst-libc_dlvsym-static.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Compare dlvsym and __libc_dlvsym results. Static version.
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <support/xdlfcn.h>
-
-static int
-do_test (void)
-{
- void *handle = xdlopen ("tst-libc_dlvsym-dso.so", RTLD_LAZY);
- void (*compare) (void) = xdlsym (handle, "compare_vsyms_global");
- compare ();
- xdlclose (handle);
-
- return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/elf/tst-libc_dlvsym.c b/elf/tst-libc_dlvsym.c
deleted file mode 100644
index 823643fb1c..0000000000
--- a/elf/tst-libc_dlvsym.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Compare dlvsym and __libc_dlvsym results. Dynamic version.
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include "tst-libc_dlvsym.h"
-
-static int
-do_test (void)
-{
- compare_vsyms ();
-
- void *handle = xdlopen ("tst-libc_dlvsym-dso.so", RTLD_LAZY);
- void (*compare) (void) = xdlsym (handle, "compare_vsyms_global");
- compare ();
- xdlclose (handle);
-
- return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/elf/tst-libc_dlvsym.h b/elf/tst-libc_dlvsym.h
deleted file mode 100644
index 1a8f2e9271..0000000000
--- a/elf/tst-libc_dlvsym.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Compare dlvsym and __libc_dlvsym results. Common code.
- Copyright (C) 2017-2021 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* compare_vsyms is the main entry point for these tests.
-
- Indirectly, It calls __libc_dlvsym (from libc.so; internal
- interface) and dlvsym (from libdl.so; public interface) to compare
- the results for a selected set of symbols in libc.so which
- typically have more than one symbol version. The two functions are
- implemented by somewhat different code, and this test checks that
- their results are the same.
-
- The versions are generated to range from GLIBC_2.0 to GLIBC_2.Y,
- with Y being the current __GLIBC_MINOR__ version plus two. In
- addition, there is a list of special symbol versions of the form
- GLIBC_2.Y.Z, which were used for some releases.
-
- Comparing the two dlvsym results at versions which do not actually
- exist does not test much, but it will not contribute to false test
- failures, either. */
-
-#include <array_length.h>
-#include <gnu/lib-names.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <support/check.h>
-#include <support/xdlfcn.h>
-
-/* Run consistency check for versioned symbol NAME@VERSION. NB: We
- may execute in a shared object, so exit on error for proper error
- reporting. */
-static void
-compare_vsyms_0 (void *libc_handle, const char *name, const char *version,
- bool *pfound)
-{
- void *dlvsym_address = dlvsym (libc_handle, name, version);
- void *libc_dlvsym_address
- = __libc_dlvsym (libc_handle, name, version);
- if (dlvsym_address != libc_dlvsym_address)
- FAIL_EXIT1 ("%s@%s mismatch: %p != %p",
- name, version, dlvsym_address, libc_dlvsym_address);
- if (dlvsym_address != NULL)
- *pfound = true;
-}
-
-
-/* Run consistency check for versioned symbol NAME at multiple symbol
- version. */
-static void
-compare_vsyms_1 (void *libc_handle, const char *name)
-{
- bool found = false;
-
- /* Historic versions which do not follow the usual GLIBC_2.Y
- pattern, to increase test coverage. Not all architectures have
- those, but probing additional versions does not hurt. */
- static const char special_versions[][12] =
- {
- "GLIBC_2.1.1",
- "GLIBC_2.1.2",
- "GLIBC_2.1.3",
- "GLIBC_2.1.4",
- "GLIBC_2.2.1",
- "GLIBC_2.2.2",
- "GLIBC_2.2.3",
- "GLIBC_2.2.4",
- "GLIBC_2.2.5",
- "GLIBC_2.2.6",
- "GLIBC_2.3.2",
- "GLIBC_2.3.3",
- "GLIBC_2.3.4",
- };
- for (int i = 0; i < array_length (special_versions); ++i)
- compare_vsyms_0 (libc_handle, name, special_versions[i], &found);
-
- /* Iterate to an out-of-range version, to cover some unused symbols
- as well. */
- for (int minor_version = 0; minor_version <= __GLIBC_MINOR__ + 2;
- ++minor_version)
- {
- char version[30];
- snprintf (version, sizeof (version), "GLIBC_%d.%d",
- __GLIBC__, minor_version);
- compare_vsyms_0 (libc_handle, name, version, &found);
- }
-
- if (!found)
- FAIL_EXIT1 ("symbol %s not found at any version", name);
-}
-
-/* Run consistency checks for various symbols which usually have
- multiple versions. */
-static void
-compare_vsyms (void)
-{
- /* The minor version loop in compare_vsyms_1 needs updating in case
- we ever switch to glibc 3.0. */
- if (__GLIBC__ != 2)
- FAIL_EXIT1 ("unexpected glibc major version: %d", __GLIBC__);
-
- /* __libc_dlvsym does not recognize the special RTLD_* handles, so
- obtain an explicit handle for libc.so. */
- void *libc_handle = xdlopen (LIBC_SO, RTLD_LAZY | RTLD_NOLOAD);
-
-
- /* sys_errlist and sys_siglist were deprecated in glibc 2.32 and they are
- not available on architectures with base ABI newer than 2.32. */
-#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_32)
- compare_vsyms_1 (libc_handle, "_sys_errlist");
- compare_vsyms_1 (libc_handle, "_sys_siglist");
-#endif
- compare_vsyms_1 (libc_handle, "quick_exit");
-
- xdlclose (libc_handle);
-}
diff --git a/include/dlfcn.h b/include/dlfcn.h
index d4440c567e..a4c283728f 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -45,20 +45,20 @@ extern char **__libc_argv attribute_hidden;
better error handling semantics for the library. */
#define __libc_dlopen(name) \
__libc_dlopen_mode (name, RTLD_NOW | __RTLD_DLOPEN)
-extern void *__libc_dlopen_mode (const char *__name, int __mode);
-extern void *__libc_dlsym (void *__map, const char *__name);
-extern void *__libc_dlvsym (void *map, const char *name, const char *version);
-extern int __libc_dlclose (void *__map);
-libc_hidden_proto (__libc_dlopen_mode)
-libc_hidden_proto (__libc_dlsym)
-libc_hidden_proto (__libc_dlvsym)
-libc_hidden_proto (__libc_dlclose)
+extern void *__libc_dlopen_mode (const char *__name, int __mode)
+ attribute_hidden;
+extern void *__libc_dlsym (void *__map, const char *__name)
+ attribute_hidden;
+extern void *__libc_dlvsym (void *map, const char *name, const char *version)
+ attribute_hidden;
+extern int __libc_dlclose (void *__map)
+ attribute_hidden;
/* Locate shared object containing the given address. */
#ifdef ElfW
extern int _dl_addr (const void *address, Dl_info *info,
- struct link_map **mapp, const ElfW(Sym) **symbolp);
-libc_hidden_proto (_dl_addr)
+ struct link_map **mapp, const ElfW(Sym) **symbolp)
+ attribute_hidden;
#endif
struct link_map;
@@ -73,23 +73,21 @@ extern void _dl_close_worker (struct link_map *map, bool force)
/* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or
RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns
the symbol value, which may be NULL. */
-extern void *_dl_sym (void *handle, const char *name, void *who);
-libc_hidden_proto (_dl_sym)
+extern void *_dl_sym (void *handle, const char *name, void *who)
+ attribute_hidden;
/* Look up version VERSION of symbol NAME in shared object HANDLE
(which may be RTLD_DEFAULT or RTLD_NEXT). WHO is the calling
function, for RTLD_NEXT. Returns the symbol value, which may be
NULL. */
extern void *_dl_vsym (void *handle, const char *name, const char *version,
- void *who);
-libc_hidden_proto (_dl_vsym)
+ void *who) attribute_hidden;
/* Helper function for <dlfcn.h> functions. Runs the OPERATE function via
_dl_catch_error. Returns zero for success, nonzero for failure; and
arranges for `dlerror' to return the error details.
ARGS is passed as argument to OPERATE. */
-extern int _dlerror_run (void (*operate) (void *), void *args);
-libc_hidden_proto (_dlerror_run)
+extern int _dlerror_run (void (*operate) (void *), void *args) attribute_hidden;
/* This structure is used to make the outer (statically linked)
implementation of dlopen and related functions to the inner libc
</cut>
Successfully identified regression in *glibc* in CI configuration tcwg_cross/gnu-master-aarch64-build_cross. So far, this commit has regressed CI configurations:
- tcwg_cross/gnu-master-aarch64-build_cross
Culprit:
<cut>
commit 8ec022a037788cc540c5670b0c9b1aa137bfbf97
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Jul 7 08:40:41 2021 +0200
nptl: Remove GLIBC_2.34 versions of __pthread_mutex_lock, __pthread_mutex_unlock
Now that there are no internal users anymore, these new symbol
versions can be removed from the public ABI. The compatibility
symbols remain.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
</cut>
Results regressed to (for first_bad == 8ec022a037788cc540c5670b0c9b1aa137bfbf97)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# First few build errors in logs:
# 00:00:16 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.o] Error 1
# 00:00:17 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crti.o] Error 1
# 00:00:17 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crtn.o] Error 1
# 00:00:17 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:499: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.os] Error 1
# 00:00:17 make[2]: *** [../o-iterator.mk:9: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.o] Error 1
# 00:00:17 make[2]: *** [../o-iterator.mk:9: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.os] Error 1
# 00:00:17 ../sysdeps/aarch64/nptl/tls.h:91:19: error: ‘__builtin_thread_pointer’ is not supported on this target
# 00:00:17 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:485: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/libc-tls.o] Error 1
# 00:00:17 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid register name for ‘_x0’
# 00:00:17 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid register name for ‘_x8’
from (for last_good == 1f9c804fbd699104adefbce9e56d2c8aa711b6b9)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# build_abe glibc:
4
# build_abe stage2:
5
# build_abe qemu:
6
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build top page/logs: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Configuration details:
Reproduce builds:
<cut>
mkdir investigate-glibc-8ec022a037788cc540c5670b0c9b1aa137bfbf97
cd investigate-glibc-8ec022a037788cc540c5670b0c9b1aa137bfbf97
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh
cd glibc
# Reproduce first_bad build
git checkout --detach 8ec022a037788cc540c5670b0c9b1aa137bfbf97
../artifacts/test.sh
# Reproduce last_good build
git checkout --detach 1f9c804fbd699104adefbce9e56d2c8aa711b6b9
../artifacts/test.sh
cd ..
</cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/…
Artifacts: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build log: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Full commit (up to 1000 lines):
<cut>
commit 8ec022a037788cc540c5670b0c9b1aa137bfbf97
Author: Florian Weimer <fweimer(a)redhat.com>
Date: Wed Jul 7 08:40:41 2021 +0200
nptl: Remove GLIBC_2.34 versions of __pthread_mutex_lock, __pthread_mutex_unlock
Now that there are no internal users anymore, these new symbol
versions can be removed from the public ABI. The compatibility
symbols remain.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
---
nptl/Versions | 2 --
nptl/pthread_mutex_lock.c | 5 +++--
nptl/pthread_mutex_unlock.c | 5 +++--
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 --
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 --
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 --
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 --
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 --
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 --
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 --
sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 --
sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 2 --
sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 2 --
sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 --
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 --
sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 --
sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 --
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 --
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist | 2 --
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist | 2 --
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist | 2 --
sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 2 --
sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 --
sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 --
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 --
sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 --
sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 --
sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 --
35 files changed, 6 insertions(+), 70 deletions(-)
diff --git a/nptl/Versions b/nptl/Versions
index 060d8d5dec..0a1c75509a 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -253,8 +253,6 @@ libc {
GLIBC_2.34 {
__pthread_cleanup_routine;
__pthread_key_create;
- __pthread_mutex_lock;
- __pthread_mutex_unlock;
__pthread_register_cancel;
__pthread_register_cancel_defer;
__pthread_unregister_cancel;
diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
index c9e438ef37..da624f322d 100644
--- a/nptl/pthread_mutex_lock.c
+++ b/nptl/pthread_mutex_lock.c
@@ -609,9 +609,10 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)
}
#if PTHREAD_MUTEX_VERSIONS
-versioned_symbol (libpthread, ___pthread_mutex_lock, __pthread_mutex_lock,
- GLIBC_2_34);
libc_hidden_ver (___pthread_mutex_lock, __pthread_mutex_lock)
+# ifndef SHARED
+strong_alias (___pthread_mutex_lock, __pthread_mutex_lock)
+# endif
versioned_symbol (libpthread, ___pthread_mutex_lock, pthread_mutex_lock,
GLIBC_2_0);
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
index ea88ba2986..7c15397572 100644
--- a/nptl/pthread_mutex_unlock.c
+++ b/nptl/pthread_mutex_unlock.c
@@ -368,9 +368,10 @@ ___pthread_mutex_unlock (pthread_mutex_t *mutex)
{
return __pthread_mutex_unlock_usercnt (mutex, 1);
}
-versioned_symbol (libpthread, ___pthread_mutex_unlock, __pthread_mutex_unlock,
- GLIBC_2_34);
libc_hidden_ver (___pthread_mutex_unlock, __pthread_mutex_unlock)
+#ifndef SHARED
+strong_alias (___pthread_mutex_unlock, __pthread_mutex_unlock)
+#endif
versioned_symbol (libpthread, ___pthread_mutex_unlock, pthread_mutex_unlock,
GLIBC_2_0);
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 6730cbdd6b..6f19b07b47 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2384,8 +2384,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 63de4fadc3..6ece449d4b 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2483,8 +2483,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 2f13701fd7..3bf846349f 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -2143,8 +2143,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 9b824f1605..08be998d35 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -245,9 +245,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 443a81b8f7..ebd767ed96 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -242,9 +242,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 243de3cf93..4a467e706e 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2377,9 +2377,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 24ae58bb6f..bdef8d2a34 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2330,9 +2330,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 09bebcd5a1..eba95a2cf0 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2514,9 +2514,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 0bafe09253..3fbc5ae978 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2321,8 +2321,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index c1fcde4c24..0aef2ec43a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -246,9 +246,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 407651cfd7..a4704f7e96 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2457,9 +2457,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 7da722a734..8f135f30c0 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2428,9 +2428,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index c374607b81..719609ac10 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2425,9 +2425,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index b1f426e053..f9a6bccdc5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2422,9 +2422,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 066ceb2258..cee02495c6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2420,9 +2420,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 51c563ebbe..c9fdfe3a55 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2428,9 +2428,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 28db715d8a..d27c97094e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2372,8 +2372,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index ab9f2bd42c..25f270403f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2467,9 +2467,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 83f8513e17..0256a272dd 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2484,9 +2484,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0fad357bf6..946f855c64 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2517,9 +2517,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 424ec8d953..602da17327 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2285,8 +2285,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 9909fd0e9a..287285a21a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2580,8 +2580,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 7085989b16..cdeee28d0f 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -2145,8 +2145,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index a855997957..a74b54d6bb 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2345,8 +2345,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 12aeb82520..e96371317c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2482,9 +2482,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index e2d746ad5f..aadc7c1d66 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2322,8 +2322,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 1ce4b54bf2..cc4a625cb4 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2337,9 +2337,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 7d01add713..163d2cd613 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2334,9 +2334,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index b5ef3247d7..6eceee6b88 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2477,9 +2477,7 @@ GLIBC_2.34 __pthread_cond_clockwait64 F
GLIBC_2.34 __pthread_cond_timedwait64 F
GLIBC_2.34 __pthread_key_create F
GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_lock F
GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index 14ae7c8417..e6bac469ba 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2344,8 +2344,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 57c4f28d17..e90f3e54c0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2300,8 +2300,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 47211abe4e..792f681bba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2399,8 +2399,6 @@ GLIBC_2.34 __libc_start_main F
GLIBC_2.34 __mq_open_2 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_lock F
-GLIBC_2.34 __pthread_mutex_unlock F
GLIBC_2.34 __pthread_register_cancel F
GLIBC_2.34 __pthread_register_cancel_defer F
GLIBC_2.34 __pthread_unregister_cancel F
</cut>
Successfully identified regression in *glibc* in CI configuration tcwg_cross/gnu-master-aarch64-build_cross. So far, this commit has regressed CI configurations:
- tcwg_cross/gnu-master-aarch64-build_cross
Culprit:
<cut>
commit 83e55c982ffcf42185254cff5ac16377672ae32e
Author: Siddhesh Poyarekar <siddhesh(a)sourceware.org>
Date: Wed Jul 7 07:02:13 2021 +0530
glibc.malloc.check: Fix nit in documentation
The tunable will not work with *any* non-zero tunable value since its
list of allowed values is 0-3. Fix the documentation to reflect that.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
</cut>
Results regressed to (for first_bad == 83e55c982ffcf42185254cff5ac16377672ae32e)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# First few build errors in logs:
# 00:00:19 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.o] Error 1
# 00:00:19 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:499: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/start.os] Error 1
# 00:00:19 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crtn.o] Error 1
# 00:00:19 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:483: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/crti.o] Error 1
# 00:00:19 make[2]: *** [../o-iterator.mk:9: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.os] Error 1
# 00:00:19 make[2]: *** [../o-iterator.mk:9: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/check_fds.o] Error 1
# 00:00:19 ../sysdeps/aarch64/nptl/tls.h:91:19: error: ‘__builtin_thread_pointer’ is not supported on this target
# 00:00:19 make[2]: *** [/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/sysd-rules:485: /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/x86_64-pc-linux-gnu/aarch64-linux-gnu/glibc-glibc.git~master/csu/libc-tls.o] Error 1
# 00:00:19 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:190:17: error: invalid register name for ‘_x0’
# 00:00:19 ../sysdeps/unix/sysv/linux/aarch64/sysdep.h:174:22: error: invalid register name for ‘_x8’
from (for last_good == 7042b53f11339bc286270cd1a48eebf7989d198b)
# reset_artifacts:
-10
# true:
0
# build_abe binutils:
1
# build_abe stage1:
2
# build_abe linux:
3
# build_abe glibc:
4
# build_abe stage2:
5
# build_abe qemu:
6
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build top page/logs: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Configuration details:
Reproduce builds:
<cut>
mkdir investigate-glibc-83e55c982ffcf42185254cff5ac16377672ae32e
cd investigate-glibc-83e55c982ffcf42185254cff5ac16377672ae32e
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/… --fail
chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_gnu-build.sh @@ artifacts/manifests/build-baseline.sh
cd glibc
# Reproduce first_bad build
git checkout --detach 83e55c982ffcf42185254cff5ac16377672ae32e
../artifacts/test.sh
# Reproduce last_good build
git checkout --detach 7042b53f11339bc286270cd1a48eebf7989d198b
../artifacts/test.sh
cd ..
</cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/…
Artifacts: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Build log: https://ci.linaro.org/job/tcwg_cross-bisect-gnu-master-aarch64-build_cross/…
Full commit (up to 1000 lines):
<cut>
commit 83e55c982ffcf42185254cff5ac16377672ae32e
Author: Siddhesh Poyarekar <siddhesh(a)sourceware.org>
Date: Wed Jul 7 07:02:13 2021 +0530
glibc.malloc.check: Fix nit in documentation
The tunable will not work with *any* non-zero tunable value since its
list of allowed values is 0-3. Fix the documentation to reflect that.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella(a)linaro.org>
---
manual/memory.texi | 10 +++++-----
manual/tunables.texi | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/manual/memory.texi b/manual/memory.texi
index 28ec2e4e63..31ee36be8c 100644
--- a/manual/memory.texi
+++ b/manual/memory.texi
@@ -1364,11 +1364,11 @@ The block was already freed.
Another possibility to check for and guard against bugs in the use of
@code{malloc}, @code{realloc} and @code{free} is to set the environment
variable @code{MALLOC_CHECK_}. When @code{MALLOC_CHECK_} is set to a
-non-zero value, a special (less efficient) implementation is used which
-is designed to be tolerant against simple errors, such as double calls
-of @code{free} with the same argument, or overruns of a single byte
-(off-by-one bugs). Not all such errors can be protected against,
-however, and memory leaks can result.
+non-zero value less than 4, a special (less efficient) implementation is
+used which is designed to be tolerant against simple errors, such as
+double calls of @code{free} with the same argument, or overruns of a
+single byte (off-by-one bugs). Not all such errors can be protected
+against, however, and memory leaks can result.
Any detected heap corruption results in immediate termination of the
process.
diff --git a/manual/tunables.texi b/manual/tunables.texi
index d5d957fb5b..ebdb562e36 100644
--- a/manual/tunables.texi
+++ b/manual/tunables.texi
@@ -115,7 +115,7 @@ following tunables in the @code{malloc} namespace:
This tunable supersedes the @env{MALLOC_CHECK_} environment variable and is
identical in features.
-Setting this tunable to a non-zero value enables a special (less
+Setting this tunable to a non-zero value less than 4 enables a special (less
efficient) memory allocator for the @code{malloc} family of functions that is
designed to be tolerant against simple errors such as double calls of
free with the same argument, or overruns of a single byte (off-by-one
</cut>