Matthieu Longo <[email protected]> writes:
> @@ -24803,6 +24834,16 @@ aarch64_start_file (void)
> asm_fprintf (asm_out_file, "\t.arch %s\n",
> aarch64_last_printed_arch_string.c_str ());
>
> + /* Check whether the current assembly supports gcs build attributes, if not
> + fallback to .note.gnu.property section. */
> +#if (HAVE_AS_AEABI_BUILD_ATTRIBUTES)
> + if (aarch64_gcs_enabled ())
I was hoping we could instead use:
if (HAVE_AS_AEABI_BUILD_ATTRIBUTES && aarch64_gcs_enabled ())
so that the code is parsed but compiled out when the new syntax is not
supported. This avoids cases where a patch that works with a new
assembler breaks bootstrap when using an older assembler, or vice
versa.
> + {
> + aarch64_emit_aeabi_subsection (".aeabi-feature-and-bits", 1, 0);
> + aarch64_emit_aeabi_attribute ("Tag_Feature_GCS", 3, 1);
> + }
> +#endif
> +
> default_file_start ();
> }
>
> [...]
> diff --git a/gcc/configure.ac b/gcc/configure.ac
> index 8a5fed516b3..f4b1343ca70 100644
> --- a/gcc/configure.ac
> +++ b/gcc/configure.ac
> @@ -4387,6 +4387,16 @@ case "$target" in
> ldr x0, [[x2, #:gotpage_lo15:globalsym]]
> ],,[AC_DEFINE(HAVE_AS_SMALL_PIC_RELOCS, 1,
> [Define if your assembler supports relocs needed by -fpic.])])
> + # Check if we have binutils support for AEABI build attributes.
> + gcc_GAS_CHECK_FEATURE([support of AEABI build attributes],
> gcc_cv_as_aarch64_aeabi_build_attributes,,
> + [
> + .set ATTR_TYPE_uleb128, 0
> + .set ATTR_TYPE_asciz, 1
Very minor, but: we can drop this line, since it isn't used in the test.
Same for the corresponding Tcl test.
OK with those changes, thanks.
Richard
> + .set Tag_Feature_foo, 1
> + .aeabi_subsection .aeabi-feature-and-bits, 1, ATTR_TYPE_uleb128
> + .aeabi_attribute Tag_Feature_foo, 1
> + ],,[AC_DEFINE(HAVE_AS_AEABI_BUILD_ATTRIBUTES, 1,
> + [Define if your assembler supports AEABI build attributes.])])
> # Enable Branch Target Identification Mechanism and Return Address
> # Signing by default.
> AC_ARG_ENABLE(standard-branch-protection,