diff options
author | Yury Khrustalev <yury.khrustalev@arm.com> | 2025-06-05 15:40:05 +0100 |
---|---|---|
committer | Yury Khrustalev <yury.khrustalev@arm.com> | 2025-07-31 12:39:10 +0100 |
commit | a8461846adbc0e9887579ec5898be36ef01282ba (patch) | |
tree | 7ba36495437c46c12b7d93da43c7a2145a14f40d /gcc/rust/parse/rust-parse-impl.h | |
parent | 647bd0a02789f17ab6e092fff60839d28fd635dc (diff) | |
download | gcc-a8461846adbc0e9887579ec5898be36ef01282ba.zip gcc-a8461846adbc0e9887579ec5898be36ef01282ba.tar.gz gcc-a8461846adbc0e9887579ec5898be36ef01282ba.tar.bz2 |
aarch64: Stop using sys/ifunc.h header in libatomic and libgcc
This optional header is used to bring in the definition of the
struct __ifunc_arg_t type. Since it has been added to glibc only
recently, the previous implementation had to check whether this
header is present and, if not, it provide its own definition.
This creates dead code because either one of these two parts would
not be tested. The ABI specification for ifunc resolvers allows to
create own ABI-compatible definition for this type, which is the
right way of doing it.
In addition to improving consistency, the new approach also helps
with addition of new fields to struct __ifunc_arg_t type without
the need to work-around situations when the definition imported
from the header lacks these new fields.
ABI allows to define as many hwcap fields in this struct as needed,
provided that at runtime we only access the fields that are permitted
by the _size value.
gcc/
* config/aarch64/aarch64.cc (build_ifunc_arg_type):
Add new fields _hwcap3 and _hwcap4.
libatomic/
* config/linux/aarch64/host-config.h (__ifunc_arg_t):
Remove sys/ifunc.h and add new fields _hwcap3 and _hwcap4.
libgcc/
* config/aarch64/cpuinfo.c (__ifunc_arg_t): Likewise.
(__init_cpu_features): obtain and assign values for the
fields _hwcap3 and _hwcap4.
(__init_cpu_features_constructor): check _size in the
arg argument.
Diffstat (limited to 'gcc/rust/parse/rust-parse-impl.h')
0 files changed, 0 insertions, 0 deletions