glibc/scripts
Stefan Liebler b9579342c6 Remove support for lock elision.
The support for lock elision was already deprecated with glibc 2.42:
commit 77438db8cf
"Mark support for lock elision as deprecated."
See also discussions:
https://sourceware.org/pipermail/libc-alpha/2025-July/168492.html

This patch removes the architecture specific support for lock elision
for x86, powerpc and s390 by removing the elision-conf.h, elision-conf.c,
elision-lock.c, elision-timed.c, elision-unlock.c, elide.h, htm.h/hle.h files.
Those generic files are also removed.

The architecture specific structures are adjusted and the elision fields are
marked as unused.  See struct_mutex.h files.
Furthermore in struct_rwlock.h, the leftover __rwelision was also removed.
Those were originally removed with commit 0377a7fde6
"nptl: Remove rwlock elision definitions"
and by chance reintroduced with commit 7df8af43ad
"nptl: Add struct_rwlock.h"

The common code (e.g. the pthread_mutex-files) are changed back to the time
before lock elision was introduced with the x86-support:
- commit 1cdbe57948
"Add the low level infrastructure for pthreads lock elision with TSX"
- commit b023e4ca99
"Add new internal mutex type flags for elision."
- commit 68cc29355f
"Add minimal test suite changes for elision enabled kernels"
- commit e8c659d74e
"Add elision to pthread_mutex_{try,timed,un}lock"
- commit 49186d21ef
"Disable elision for any pthread_mutexattr_settype call"
- commit 1717da59ae
"Add a configure option to enable lock elision and disable by default"

Elision is removed also from the tunables, the initialization part, the
pretty-printers and the manual.

Some extra handling in the testsuite is removed as well as the full tst-mutex10
testcase, which tested a race while enabling lock elision.

I've also searched the code for "elision", "elide", "transaction" and e.g.
cleaned some comments.

I've run the testsuite on x86_64 and s390x and run the build-many-glibcs.py
script.
Thanks to Sachin Monga, this patch is also tested on powerpc.

A NEWS entry also mentions the removal.
Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2025-11-18 14:21:13 +01:00
..
abi-versions.awk
abilist.awk Add GLIBC_ABI_DT_RELR for DT_RELR support 2022-04-26 10:16:11 -07:00
backport-support.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
build-many-glibcs.py Use Linux 6.17 in build-many-glibcs.py 2025-10-01 15:15:43 +00:00
check-c++-types.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
check-execstack.awk check-execstack: Permit sysdeps to xfail some libs 2018-07-20 03:28:14 +02:00
check-initfini.awk Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
check-installed-headers.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
check-local-headers.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
check-localplt.awk
check-obsolete-constructs.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
check-textrel.awk
check-wrapper-headers.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
check-wx-segment.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
config-uname.sh
config.guess Update scripts/config.* files from upstream GNU config version 2022-07-19 09:32:19 -03:00
config.sub Update scripts/config.* files from upstream GNU config version 2022-07-19 09:32:19 -03:00
cpp
cross-test-ssh.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
documented.sh crypt: Remove libcrypt support 2023-10-30 13:03:59 -03:00
dso-ordering-test.py Add missing $(rpath-link) to elf/ld.so --library-path 2025-11-08 21:47:25 +01:00
evaluate-test.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
firstversions.awk
gen-as-const.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
gen-libc-abis
gen-libc-modules.awk
gen-posix-conf-vars.awk
gen-rrtypes.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
gen-sorted.awk Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
gen-tunables.awk Remove dl-procinfo.h 2025-03-05 11:22:09 -03:00
glibc_shared_code.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
glibcelf.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
glibcextract.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
glibcpp.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
glibcsymbols.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
haveversions.awk Don't build libnsl for new ABIs 2018-09-24 10:23:10 +02:00
install-sh Update miscellaneous files from upstream sources. 2018-12-06 17:21:47 +00:00
lib-names.awk
lint-makefiles.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
list-fixed-bugs.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
list-sources.sh
localplt.awk elf: Fix localplt.awk for DT_RELR-enabled builds (BZ 31978) 2024-07-19 22:50:26 +02:00
merge-test-results.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mkinstalldirs Update miscellaneous files from upstream sources. 2018-12-06 17:21:47 +00:00
move-if-change Sync move-if-change from Gnulib, updating copyright 2022-01-01 11:42:26 -08:00
move-symbol-to-libc.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
process-advisories.sh Update advisory format and introduce some automation 2024-01-30 13:58:57 -05:00
pylint
pylintrc pylintrc: Remove obsolete ignore section and comments. 2025-05-21 12:47:40 -04:00
rellns-sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
sort-makefile-lines.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
soversions.awk
sysd-rules.awk
test-installation.pl Update copyright dates not handled by scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test_printers_common.py Remove support for lock elision. 2025-11-18 14:21:13 +01:00
test_printers_exceptions.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-elf-edit.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-ld-trace.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
update-abilist.sh Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
update-copyrights Add COPYINGv3 with the GPL version 3 text 2025-11-17 11:15:13 +01:00
vcstocl_quirks.py Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
versionlist.awk Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
versions.awk Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00