[PATCH] string: Drop always_inline from tst-xbzero-opt [BZ #23130]

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Fri Sep 25 13:03:57 GMT 2026



On 25/09/26 07:43, Stian Halseth wrote:
> Hi,
> 
> This fixes the tst-xbzero-opt build break on RISC-V from a066c5d7d; no
> comments since it went out on Monday.
> 
> Adhemerval, could you push it? I do not have commit access. Andreas, if
> you can confirm it builds on RISC-V, that would be good to have on the
> record.
> 
> Best regards,
> Stian

I have pushed this on master, thanks!

> 
> 
> On Mon, 2026-09-21 at 22:39 +0200, Stian Halseth wrote:
>> Commit a066c5d7d keeps always_inline on prepare_test_buffer unless
>> the
>> compiler lacks indirect_return, as a proxy for swapcontext not being
>> returns_twice.  GCC has indirect_return on RISC-V, which uses the
>> generic bits/indirect-return.h, so the test asks to inline a caller
>> of
>> a returns_twice function and fails to build:
>>
>>   tst-xbzero-opt.c:122:1: error: function 'prepare_test_buffer' can
>>   never be inlined because it uses setjmp
>>
>> Remove the attribute and the condition around it.
>>
>> Tested on x86_64 and sparc64.
>>
>> Reported-by: Andreas Schwab <schwab@suse.de>
>> Signed-off-by: Stian Halseth <stian@itx.no>
>> ---
>>  string/tst-xbzero-opt.c | 9 +--------
>>  1 file changed, 1 insertion(+), 8 deletions(-)
>>
>> diff --git a/string/tst-xbzero-opt.c b/string/tst-xbzero-opt.c
>> index 26e2ec1c13..dfe0d39879 100644
>> --- a/string/tst-xbzero-opt.c
>> +++ b/string/tst-xbzero-opt.c
>> @@ -111,14 +111,7 @@ use_test_buffer (unsigned char *buf)
>>  /* Always check the test buffer immediately after filling it; this
>>     makes externally visible side effects depend on the buffer
>> existing
>>     and having been filled in.  */
>> -#if !__glibc_has_attribute (__indirect_return__)
>> -/* Without indirect_return, swapcontext is marked returns_twice,
>> which
>> -   prevents always_inline from working.  */
>> -# define ALWAYS_INLINE
>> -#else
>> -# define ALWAYS_INLINE	__attribute__ ((always_inline))
>> -#endif
>> -static inline ALWAYS_INLINE void
>> +static inline void
>>  prepare_test_buffer (unsigned char *buf)
>>  {
>>    for (unsigned int i = 0; i < PATTERN_REPS; i++)



More information about the Libc-alpha mailing list