]> git.ipfire.org Git - thirdparty/glibc.git/commit
x86: Use separate variable for TLSDESC XSAVE/XSAVEC state size (bug 32810)
authorFlorian Weimer <fweimer@redhat.com>
Fri, 28 Mar 2025 08:26:59 +0000 (09:26 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Sat, 29 Mar 2025 09:19:51 +0000 (10:19 +0100)
commitdf22af58f66e6815c054b1c56249356c2994935a
treec12993fe79490ca020e01502ca0ecd0175468460
parent8fc492bb4234edc1a5e8c3b7f76ba345ea7109ec
x86: Use separate variable for TLSDESC XSAVE/XSAVEC state size (bug 32810)

Previously, the initialization code reused the xsave_state_full_size
member of struct cpu_features for the TLSDESC state size.  However,
the tunable processing code assumes that this member has the
original XSAVE (non-compact) state size, so that it can use its
value if XSAVEC is disabled via tunable.

This change uses a separate variable and not a struct member because
the value is only needed in ld.so and the static libc, but not in
libc.so.  As a result, struct cpu_features layout does not change,
helping a future backport of this change.

Fixes commit 9b7091415af47082664717210ac49d51551456ab ("x86-64:
Update _dl_tlsdesc_dynamic to preserve AMX registers").

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 145097dff170507fe73190e8e41194f5b5f7e6bf)
NEWS
sysdeps/x86/Makefile
sysdeps/x86/cpu-features.c
sysdeps/x86/cpu-tunables.c
sysdeps/x86/dl-diagnostics-cpu.c
sysdeps/x86/include/cpu-features.h
sysdeps/x86/tst-gnu2-tls2-x86-noxsave.c [new file with mode: 0644]
sysdeps/x86/tst-gnu2-tls2-x86-noxsavec.c [new file with mode: 0644]
sysdeps/x86/tst-gnu2-tls2-x86-noxsavexsavec.c [new file with mode: 0644]
sysdeps/x86_64/dl-tlsdesc-dynamic.h