[v2] aarch64: Fix build failure due to missing header

Message ID 20241129144908.2259627-1-yury.khrustalev@arm.com
State Committed
Commit f3ee8bc1cb19a3a173b1caba01de9adfd93157ec
Headers
Series [v2] aarch64: Fix build failure due to missing header |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_gcc_check--master-arm success Test passed
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_gcc_check--master-aarch64 fail Patch failed to apply

Commit Message

Yury Khrustalev Nov. 29, 2024, 2:49 p.m. UTC
  Including the "arm_acle.h" header in aarch64-unwind.h requires
stdint.h to be present and it may not be available during the
first stage of cross-compilation of GCC.

When cross-building GCC for the aarch64-none-linux-gnu target
(on any supporting host) using the 3-stage bootstrap build
process when we build native compiler from source, libgcc fails
to compile due to missing header that has not been installed yet.

This could be worked around but it's better to fix the issue.

libgcc/ChangeLog:

	* config/aarch64/aarch64-unwind.h (_CHKFEAT_GCS): Add.

---

Regression tested on aarch64-unknown-linux-gnu and no regressions have been found.
Is this OK for trunk?
Applies to fe29b03825c.

Thanks,
Yury

---
 libgcc/config/aarch64/aarch64-unwind.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
  

Comments

Kyrylo Tkachov Nov. 29, 2024, 4:19 p.m. UTC | #1
> On 29 Nov 2024, at 14:49, Yury Khrustalev <yury.khrustalev@arm.com> wrote:
> 
> Including the "arm_acle.h" header in aarch64-unwind.h requires
> stdint.h to be present and it may not be available during the
> first stage of cross-compilation of GCC.
> 
> When cross-building GCC for the aarch64-none-linux-gnu target
> (on any supporting host) using the 3-stage bootstrap build
> process when we build native compiler from source, libgcc fails
> to compile due to missing header that has not been installed yet.
> 
> This could be worked around but it's better to fix the issue.
> 

Ok.
Thanks,
Kyrill

> libgcc/ChangeLog:
> 
> * config/aarch64/aarch64-unwind.h (_CHKFEAT_GCS): Add.
> 
> ---
> 
> Regression tested on aarch64-unknown-linux-gnu and no regressions have been found.
> Is this OK for trunk?
> Applies to fe29b03825c.
> 
> Thanks,
> Yury
> 
> ---
> libgcc/config/aarch64/aarch64-unwind.h | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/libgcc/config/aarch64/aarch64-unwind.h b/libgcc/config/aarch64/aarch64-unwind.h
> index 85468f9685e..d11753a0e03 100644
> --- a/libgcc/config/aarch64/aarch64-unwind.h
> +++ b/libgcc/config/aarch64/aarch64-unwind.h
> @@ -29,7 +29,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> 
> #include "ansidecl.h"
> #include <stdbool.h>
> -#include <arm_acle.h>
> 
> #define AARCH64_DWARF_REGNUM_RA_STATE 34
> #define AARCH64_DWARF_RA_STATE_MASK   0x1
> @@ -180,7 +179,7 @@ aarch64_demangle_return_addr (struct _Unwind_Context *context,
> }
> 
> /* GCS enable flag for chkfeat instruction.  */
> -
> +#define _CHKFEAT_GCS 1
> /* SME runtime function local to libgcc, streaming compatible
>    and preserves more registers than the base PCS requires, but
>    we don't rely on that here.  */
> -- 
> 2.39.5
>
  

Patch

diff --git a/libgcc/config/aarch64/aarch64-unwind.h b/libgcc/config/aarch64/aarch64-unwind.h
index 85468f9685e..d11753a0e03 100644
--- a/libgcc/config/aarch64/aarch64-unwind.h
+++ b/libgcc/config/aarch64/aarch64-unwind.h
@@ -29,7 +29,6 @@  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "ansidecl.h"
 #include <stdbool.h>
-#include <arm_acle.h>
 
 #define AARCH64_DWARF_REGNUM_RA_STATE 34
 #define AARCH64_DWARF_RA_STATE_MASK   0x1
@@ -180,7 +179,7 @@  aarch64_demangle_return_addr (struct _Unwind_Context *context,
 }
 
 /* GCS enable flag for chkfeat instruction.  */
-
+#define _CHKFEAT_GCS 1
 /* SME runtime function local to libgcc, streaming compatible
    and preserves more registers than the base PCS requires, but
    we don't rely on that here.  */