On Wed, Oct 22, 2025 at 8:33 AM Yonghong Song <[email protected]> wrote:
>
>
>
> On 10/22/25 12:18 AM, Jiayuan Chen wrote:
> > When compiling the BPF selftests with Clang versions that do not support
> > the addr_space_cast builtin, the build fails with assembly errors in
> > "verifier_ldsx.c" [1].
> >
> > The root cause is that the inline assembly using addr_space_cast is
> > being processed by a compiler that lacks this feature. To resolve this,
> > wrap the affected code sections (specifically the arena_ldsx_* test
> > functions) with #if defined(__BPF_FEATURE_ADDR_SPACE_CAST). This
> > ensures the code is only compiled when the Clang supports the necessary
> > feature, preventing build failures on older or incompatible compiler
> > versions.
> >
> > This change maintains test coverage for systems with support while
> > allowing the tests to build successfully in all environments.
> >
> > [1]:
> > root:tools/testing/selftests/bpf$ make
> >
> >    CLNG-BPF [test_progs] verifier_ldsx.bpf.o
> > progs/verifier_ldsx.c:322:2: error: invalid operand for instruction
> >    322 |         "r1 = %[arena] ll;"
> >        |         ^
> > <inline asm>:1:52: note: instantiated into assembly here
> >      1 |         r1 = arena ll;r0 = 0xdeadbeef;r0 = addr_space_cast(r0,...
> >        |                                                           ^
>
> I think you are using llvm18 and earlier. Why can you upgrade to llvm19 and 
> later
> which should solve the problem?
>
> > Fixes: f61654912404 ("selftests: bpf: Add tests for signed loads from 
> > arena")
>
> We do not need to have Fixes. compiler is also moving forward, we cannot 
> support
> really old compiler and it is no point to have __BPF_FEATURE_ADDR_SPACE_CAST
> for really old compilers. So at some point, __BPF_FEATURE_ADDR_SPACE_CAST will
> become default.

+1
and this is not the first time we're seeing this type of patches.
Upgrade your compiler. That's the only way.

pw-bot: cr

Reply via email to