aboutsummaryrefslogtreecommitdiff
path: root/libatomic
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2025-09-02 15:58:26 -0700
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2025-09-02 15:58:26 -0700
commit071b4126c613881f4cb25b4e5c39032964827f88 (patch)
tree7ed805786566918630d1d617b1ed8f7310f5fd8e /libatomic
parent845d23f3ea08ba873197c275a8857eee7edad996 (diff)
parentcaa1c2f42691d68af4d894a5c3e700ecd2dba080 (diff)
downloadgcc-devel/gfortran-test.zip
gcc-devel/gfortran-test.tar.gz
gcc-devel/gfortran-test.tar.bz2
Merge branch 'master' into gfortran-testdevel/gfortran-test
Diffstat (limited to 'libatomic')
-rw-r--r--libatomic/ChangeLog5
-rw-r--r--libatomic/config/linux/aarch64/host-config.h12
2 files changed, 13 insertions, 4 deletions
diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog
index 6716f04..f9bbaae 100644
--- a/libatomic/ChangeLog
+++ b/libatomic/ChangeLog
@@ -1,3 +1,8 @@
+2025-07-31 Yury Khrustalev <yury.khrustalev@arm.com>
+
+ * config/linux/aarch64/host-config.h (__ifunc_arg_t):
+ Remove sys/ifunc.h and add new fields _hwcap3 and _hwcap4.
+
2025-05-22 Alexandre Oliva <oliva@adacore.com>
* configure.tgt: Set partial_libatomic on *-*-vxworks*.
diff --git a/libatomic/config/linux/aarch64/host-config.h b/libatomic/config/linux/aarch64/host-config.h
index d0d44bf..c6f8d69 100644
--- a/libatomic/config/linux/aarch64/host-config.h
+++ b/libatomic/config/linux/aarch64/host-config.h
@@ -40,16 +40,20 @@
# define HWCAP2_LSE128 (1UL << 47)
#endif
-#if __has_include(<sys/ifunc.h>)
-# include <sys/ifunc.h>
-#else
+/* The following struct is ABI-correct description of the 2nd argument for an
+ ifunc resolver as per SYSVABI spec (see link below). It is safe to extend
+ it with new fields. The ifunc resolver implementations must always check
+ the runtime size of the buffer using the value in the _size field.
+ https://github.com/ARM-software/abi-aa/blob/main/sysvabi64/sysvabi64.rst. */
typedef struct __ifunc_arg_t {
unsigned long _size;
unsigned long _hwcap;
unsigned long _hwcap2;
+ unsigned long _hwcap3;
+ unsigned long _hwcap4;
} __ifunc_arg_t;
+
# define _IFUNC_ARG_HWCAP (1ULL << 62)
-#endif
/* From the file which imported `host-config.h' we can ascertain which
architectural extension provides relevant atomic support. From this,