Re: linux-next: manual merge of the rust tree with Linus' tree

From: Peter Zijlstra
Date: Wed Jul 13 2022 - 07:40:14 EST


On Wed, Jul 13, 2022 at 08:34:09PM +1000, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the rust tree got a conflict in:
>
> arch/x86/Makefile
>
> between commit:
>
> f43b9876e857 ("x86/retbleed: Add fine grained Kconfig knobs")
>
> from Linus' tree and commit:
>
> 0ea4b9a1bece ("Kbuild: add Rust support")
>
> from the rust tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc arch/x86/Makefile
> index 1f40dad30d50,5ac9b324751d..000000000000
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@@ -21,12 -21,8 +21,13 @@@ ifdef CONFIG_CC_IS_CLAN
> RETPOLINE_CFLAGS := -mretpoline-external-thunk
> RETPOLINE_VDSO_CFLAGS := -mretpoline
> endif
> + RETPOLINE_RUSTFLAGS := -Ctarget-feature=+retpoline-external-thunk
>
> +ifdef CONFIG_RETHUNK
> +RETHUNK_CFLAGS := -mfunction-return=thunk-extern
> +RETPOLINE_CFLAGS += $(RETHUNK_CFLAGS)
> +endif

Does Rust have the equivalent of -mfunction-return=thunk-extern ?

Related, how does Rust deal with all the various CC_HAS_ Kconfig stuff?
What if C has the relevant option but Rust does not; then we must not
have the feature enabled or there will be a mis-match.

Do we now have to litter everythign with RUSTC_HAS_ ?