[PATCH v4 0/2] aarch64: Support locking GCS

Yury Khrustalev yury.khrustalev@arm.com
Mon Feb 16 17:25:43 GMT 2026


Lock GCS if it is enabled based on the existing tunable
glibc.cpu.aarch64_gcs unless selected GCS policy is OPTIONAL
in which case do not lock GCS.

This is a compromise implementation compared to full control
over locking GCS features described in [1].

I think this implementation allows back-porting to earlier
Glibc releases, would it be OK to back-port this?

Changes in v4:
 - Fixed multiple issues in tests including 2 tests failing without
   the configure option --enable-hardcoded-path-in-tests.
 - Using different error message after prctl failure for enable GCS
   and lock GCS.
 - v3: https://inbox.sourceware.org/libc-alpha/20260209115845.1426398-1-yury.khrustalev@arm.com/

---

Passes regression on aarch64. GCS tests checked on Arm Fixed
Virtual Platform (FVP) model [2]. OK for trunk?
Base commit: f5bab97a99

[1]: https://inbox.sourceware.org/libc-help/aXdRdmU95P4tbuES@arm.com/
[2]: https://inbox.sourceware.org/libc-help/aIc3ElNTSQrelCK9@arm.com/

---

Yury Khrustalev (2):
  aarch64: Lock GCS status at startup
  aarch64: Tests for locking GCS

 manual/tunables.texi                          |  50 ++++--
 sysdeps/aarch64/dl-gcs.c                      |   6 +
 sysdeps/aarch64/dl-start.S                    |  21 ++-
 sysdeps/unix/sysv/linux/aarch64/Makefile      |  25 +++
 sysdeps/unix/sysv/linux/aarch64/libc-start.h  |  29 ++-
 .../unix/sysv/linux/aarch64/tst-gcs-execv.c   |  91 ++++++++++
 .../unix/sysv/linux/aarch64/tst-gcs-fork.c    |  75 ++++++++
 .../unix/sysv/linux/aarch64/tst-gcs-helper.h  |   5 +
 .../sysv/linux/aarch64/tst-gcs-lock-ptrace.c  | 166 ++++++++++++++++++
 .../sysv/linux/aarch64/tst-gcs-lock-static.c  |   1 +
 .../unix/sysv/linux/aarch64/tst-gcs-lock.c    |  58 ++++++
 .../linux/aarch64/tst-gcs-unlock-static.c     |   2 +
 .../unix/sysv/linux/aarch64/tst-gcs-unlock.c  |   2 +
 13 files changed, 505 insertions(+), 26 deletions(-)
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-execv.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-fork.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-lock-ptrace.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-lock-static.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-lock.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-unlock-static.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/tst-gcs-unlock.c

-- 
2.47.3



More information about the Libc-alpha mailing list