Matthieu Longo <matthieu.lo...@arm.com> writes:
> The primary focus of this patch series is to add support for build attributes 
> in the context of GCS (Guarded Control Stack, an Armv9.4-a extension) to the 
> AArch64 backend.
> It addresses comments from revision 1 [2] and 2 [3], and proposes a different 
> approach compared to the previous implementation of the build attributes.
>
> The series is composed of the following 4 patches:
> 1. Patch adding assembly debug comments (-dA) to the existing GNU properties, 
> to improve testing and check the correctness of values.
> 2. The minimal patch adding support for build attributes in the context of 
> GCS.
> 3. A refactoring of (2) to make things less error-prone and more modular, add 
> support for asciz attributes and more debug information.
> 4. A refactoring of (1) relying partly on (3).
> The targeted final state of this series would consist in squashing (2) + (3), 
> and (1) + (4).
>
> **Special note regarding (2):** If Gas has support for build attributes, both 
> build attributes and GNU properties will be emitted. This behavior is still 
> open for discussion. Please, let me know your thoughts regarding this 
> behavior.

I don't have a strong opinion.  But emitting both seems like the safe
and conservatively correct behaviour, so I think the onus would be
on anyone who wants to drop the old information to make the case
for doing that.

> This patch series needs to be applied on top of the patch series for GCS [1].
>
> Bootstrapped on aarch64-none-linux-gnu, and no regression found.
>
> [1]: 
> https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/vendors/ARM/heads/gcs
> [2]: https://gcc.gnu.org/pipermail/gcc-patches/2024-September/662825.html
> [3]: https://gcc.gnu.org/pipermail/gcc-patches/2024-September/664004.html
>
> Regards,
> Matthieu
>
> Diff with revision 1 [2]:
> - update the description of (2)
> - address the comments related to the tests in (2)
> - add new commits (1), (3) and (4)
>
> Diff with revision 2 [3]:
> - address comments of Richard Sandiford in revision 2.
> - fix several formatting mistakes.
> - remove RFC tag.
>
>
> Matthieu Longo (3):
>   aarch64: add debug comments to feature properties in .note.gnu.property
>   aarch64: improve assembly debug comments for AEABI build attributes
>   aarch64: encapsulate note.gnu.property emission into a class
>
> Srinath Parvathaneni (1):
>   aarch64: add minimal support of AEABI build attributes for GCS.

Looks good, thanks.  OK for trunk with the suggested changes for
patches 2 and 3.

Richard

>  gcc/config.gcc                                |   2 +-
>  gcc/config.in                                 |   6 +
>  gcc/config/aarch64/aarch64-dwarf-metadata.cc  | 145 +++++++++++
>  gcc/config/aarch64/aarch64-dwarf-metadata.h   | 245 ++++++++++++++++++
>  gcc/config/aarch64/aarch64.cc                 |  69 ++---
>  gcc/config/aarch64/t-aarch64                  |  10 +
>  gcc/configure                                 |  38 +++
>  gcc/configure.ac                              |  10 +
>  gcc/testsuite/gcc.target/aarch64/bti-1.c      |  13 +-
>  .../aarch64-build-attributes.exp              |  35 +++
>  .../build-attributes/build-attribute-gcs.c    |  12 +
>  .../build-attribute-standard.c                |  12 +
>  .../build-attributes/no-build-attribute-bti.c |  12 +
>  .../build-attributes/no-build-attribute-gcs.c |  12 +
>  .../build-attributes/no-build-attribute-pac.c |  12 +
>  .../no-build-attribute-standard.c             |  12 +
>  gcc/testsuite/lib/target-supports.exp         |  16 ++
>  17 files changed, 611 insertions(+), 50 deletions(-)
>  create mode 100644 gcc/config/aarch64/aarch64-dwarf-metadata.cc
>  create mode 100644 gcc/config/aarch64/aarch64-dwarf-metadata.h
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/aarch64-build-attributes.exp
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-gcs.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-standard.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-bti.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-gcs.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-pac.c
>  create mode 100644 
> gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-standard.c

Reply via email to