> Am 23.11.2023 um 16:17 schrieb Jose E. Marchesi <jose.march...@oracle.com>:
> 
> [Changes from V1:
> - Use always_inline only in BPF target.]
> 
> The function __hardcfr_check_fail in hardcfr.c is internal and static
> inline.  It receives many arguments, which require more than five
> registers to be passed in bpf-none-unknown targets.  BPF is limited to
> that number of registers to pass arguments, and therefore libgcc fails
> to build in that target.  This patch marks the function with the
> always_inline attribute, fixing the bpf build.
> 
> Tested in bpf-unknown-none target and x86_64-linux-gnu host.

Ok

Richard 

> libgcc/ChangeLog:
> 
>    * hardcfr.c (__hardcfr_check_fail): Mark as always_inline.
> ---
> libgcc/hardcfr.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/libgcc/hardcfr.c b/libgcc/hardcfr.c
> index 25ff06742cb..376a36202c8 100644
> --- a/libgcc/hardcfr.c
> +++ b/libgcc/hardcfr.c
> @@ -206,6 +206,10 @@ __hardcfr_debug_cfg (size_t const blocks,
>    enabled, it also forces __hardcfr_debug_cfg (above) to be compiled into an
>    out-of-line function, that could be called from a debugger.
>    */
> +
> +#ifdef __BPF__
> +__attribute__((__always_inline__))
> +#endif
> static inline void
> __hardcfr_check_fail (size_t const blocks ATTRIBUTE_UNUSED,
>              vword const *const visited ATTRIBUTE_UNUSED,
> --
> 2.30.2
> 

Reply via email to