On Wed, 5 Jun 2024 at 08:22, Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > > Hi David, > > Just a fly by comment on style, I don't have much to say content :) > > On Wed, Jun 05, 2024 at 06:40:50AM +0800, David Gow wrote: > > At present, Rust in the kernel only supports 64-bit x86, so UML has > > followed suit. However, it's significantly easier to support 32-bit i386 > > on UML than on bare metal, as UML does not use the -mregparm option > > (which alters the ABI), which is not yet supported by rustc[1]. > > > > Add support for CONFIG_RUST on um/i386, by adding a new target config to > > generate_rust_target, and replacing various checks on CONFIG_X86_64 to > > also probably like support CONFIG_X86_32. > > > > We still use generate_rust_target, rather than a built-in rustc target, > > in oPrder to match x86_64, provide a future place for -mregparm, and more > > easily disable floating point instructions. > > > > With these changes, the KUnit tests pass with: > > kunit.py run --make_options LLVM=1 --kconfig_add CONFIG_RUST=y > > --kconfig_add CONFIG_64BIT=n --kconfig_add CONFIG_FORTIFY_SOURCE=n > > > > An earlier version of these changes was proposed on the Rust-for-Linux > > github[2]. > > > > [1]: https://github.com/rust-lang/rust/issues/116972 > > [2]: https://github.com/Rust-for-Linux/linux/pull/966 > > > > Signed-off-by: David Gow <davidgow@xxxxxxxxxx> > ... > > -ifdef CONFIG_X86_64 > > +ifneq ($(or $(CONFIG_X86_64),$(CONFIG_X86_32)),) > > These configurations are mutually exclusive, so would it look more > readable to have it be: > > > ifeq ($(CONFIG_X86_32)$(CONFIG_X86_64),y) > Or simply ifdef CONFIG_X86