Re: [PATCH v1] rust: bug: skip arch-specific asm in `testlib` builds
Miguel Ojeda <[email protected]>
| Newsgroups | org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <CANiq72m4pmmLaCkwL8vLC3s38rPNbzBCM8t+=h4eh8=FUFiTtw@mail.gmail.com> |
On Sat, Aug 8, 2026 at 4:26 AM FUJITA Tomonori <[email protected]> wrote: > > From: FUJITA Tomonori <[email protected]> > > Running `make rusttest` with `ARCH=` set to an architecture other than > the host's fails, e.g. `ARCH=arm64` on an x86_64 host: > > error: invalid instruction mnemonic 'brk' > --> rust/kernel/bug.rs:63:17 > | > 63 | / concat!( > 64 | | "/* {size} */", > 65 | | include!(concat!(env!("OBJTREE"), "/rust/kernel/generated_arch_warn_asm.rs")), > 66 | | include!(concat!(env!("OBJTREE"), "/rust/kernel/generated_arch_reachable_asm.rs"))); > | |_______________________________________________________________________________________________________^ > | > note: instantiated into assembly here > --> <inline asm>:1:115 > | > 1 | /* 8 */.pushsection __bug_table,"aw"; .align 2; 14470: .long 14471f - .;.short 2305;.align 2; .popsection; 14471:brk 0x800 > | ^^^ > > The reason is that `rusttest` builds the `kernel` crate as a host > library: it passes the `CONFIG_*` cfgs of the configured architecture, > but not `--target`, so code generation happens for the > host. `warn_flags!` then selects the arch-specific inline asm arm > based on `CONFIG_*`, and the host assembler rejects it. > > This does not happen with the current `master` because `warn_on!` has > no user inside the `kernel` crate itself yet, but it will as soon as > one is added. > > Reported-by: Miguel Ojeda <[email protected]> > Closes: https://lore.kernel.org/all/CANiq72n4=fz=JNKY0Jdm8BnLa=RmHB2B7s0bO47YTJ7hygqBZg@mail.gmail.com/ > Signed-off-by: FUJITA Tomonori <[email protected]> Applied to `rust-next` -- thanks! Cc: [email protected] Fixes: dff64b072708 ("rust: Add warn_on macro") Cheers, Miguel