diff options
author | Jose E. Marchesi <jose.marchesi@oracle.com> | 2023-11-22 15:32:17 +0100 |
---|---|---|
committer | Jose E. Marchesi <jose.marchesi@oracle.com> | 2023-11-23 17:31:40 +0100 |
commit | 2eb833534c7e715c276658ecb810715e8718e5c3 (patch) | |
tree | 2fc1a1b44c4b67858c999014671fa3ca06899807 /libgcc | |
parent | ba0869323e1d45b1328b4cb723cb139a2e2146c3 (diff) | |
download | gcc-2eb833534c7e715c276658ecb810715e8718e5c3.zip gcc-2eb833534c7e715c276658ecb810715e8718e5c3.tar.gz gcc-2eb833534c7e715c276658ecb810715e8718e5c3.tar.bz2 |
libgcc: mark __hardcfr_check_fail as always_inline
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.
libgcc/ChangeLog:
* hardcfr.c (__hardcfr_check_fail): Mark as always_inline.
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/hardcfr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libgcc/hardcfr.c b/libgcc/hardcfr.c index 25ff067..376a362 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, |