Messages in this thread | | | Date | Mon, 23 Oct 2023 15:42:54 -0300 | Subject | Re: [PATCH 3/4] x86/rust: depend on !RETHUNK | From | Martin Rodriguez Reboredo <> |
| |
On 10/23/23 14:44, Miguel Ojeda wrote: > The Rust compiler does not support the equivalent of > `-mfunction-return=thunk-extern` yet [1]. Thus, currently, `objtool` > warns about it, e.g.: > > samples/rust/rust_print.o: warning: objtool: _R...init+0xa5c: > 'naked' return found in RETHUNK build > > The support in `rustc` for `-Zfunction-return` has been submitted and > is being reviewed [2]. It adds the needed LLVM function attributes and, > with it, I got a RETHUNK kernel build with Rust enabled that does not > print the `objtool` related warnings, boots in QEMU and can load a kernel > loadable module. > > In any case, until proper/complete support is added to `rustc`, make it > a hard restriction until the mitigation is in place. > > This may have an impact for developers that may not need/care about the > mitigation in the Rust side (e.g. Ubuntu offers Rust as a "technology > preview" [3]), but given we are getting closer to having the first actual > in-tree Rust kernel users, it seems like the right time to disallow > it. This should also avoid confusion [4].
I'll mention that I've tested boots, both in bare metal and QEMU, with `RUST=y` and `RETHUNK=y` and they were alright regardless of `objtool` warnings. Although, if you had an issue in the past then I'd like to know about it.
| |