From: WANG Rui <wangrui@loongson.cn>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: Trevor Gross <tmgross@umich.edu>,
Jamie Cunliffe <Jamie.Cunliffe@arm.com>,
linux-arm-kernel@lists.infradead.org,
rust-for-linux@vger.kernel.org, Miguel Ojeda <ojeda@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
steve.capper@arm.com, Asahi Lina <lina@asahilina.net>,
boqun.feng@gmail.com, andrew@lunn.ch,
Huacai Chen <chenhuacai@kernel.org>,
loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org
Subject: Re: [PATCH v4 1/2] rust: Refactor the build target to allow the use of builtin targets
Date: Sat, 27 Jan 2024 13:08:08 +0800 [thread overview]
Message-ID: <CAHirt9josVNzcwCM5Y3MsVJC9dz+iRg6r_64OK4NWPeOOo_X8g@mail.gmail.com> (raw)
In-Reply-To: <CAK7LNAQKxrV-oxouv9F6+_i9-oGvJNBzFNLo+5PdqwWVd9qWZQ@mail.gmail.com>
On Sat, Jan 27, 2024 at 3:38 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> On Thu, Jan 25, 2024 at 12:20 PM WANG Rui <wangrui@loongson.cn> wrote:
> >
> > Hello,
> >
> > On Mon, Jan 22, 2024 at 5:17 PM Trevor Gross <tmgross@umich.edu> wrote:
> > >
> > > On Fri, Oct 20, 2023 at 10:59 AM Jamie Cunliffe <Jamie.Cunliffe@arm.com> wrote:
> > > >
> > > > Eventually we want all architectures to be using the target as defined
> > > > by rustc. However currently some architectures can't do that and are
> > > > using the target.json specification. This puts in place the foundation
> > > > to allow the use of the builtin target definition or a target.json
> > > > specification.
> > > >
> > > > Signed-off-by: Jamie Cunliffe <Jamie.Cunliffe@arm.com>
> > > > ---
> > > > Makefile | 1 -
> > > > arch/x86/Makefile | 1 +
> > > > rust/Makefile | 5 ++++-
> > > > scripts/Makefile | 4 +++-
> > > > 4 files changed, 8 insertions(+), 3 deletions(-)
> > >
> > > Adding LoongArch maintainers - this patch will need a small update to
> > > arch/loongarch/Makefile similar to the change in arch/x86/Makefile
> > > (included below), since that support is now in-tree and uses
> > > generate_rust_target [1]. Also a very minor conflict in docs at patch
> > > 2/2.
> > >
> > > I believe this patchset is still waiting on an ack from the kbuild
> > > team. Series at [2] for reference.
> > >
> > > Thanks,
> > > Trevor
> > >
> > > [1]: https://lore.kernel.org/rust-for-linux/20240108032117.215171-1-wangrui@loongson.cn/
> > > [2]: https://lore.kernel.org/rust-for-linux/20231020155056.3495121-1-Jamie.Cunliffe@arm.com/
> >
> > I can confirm that the fix patch [2], based on patch [1], is suitable
> > for LoongArch. LoongArch encounters no issues when using the built-in
> > `loongarch64-unknown-none-softfloat` target. Once patch [1] is merged
> > into the mainline, I'll send a patch to switch to using the built-in
> > target.
>
> But, [1] and [2] must be squashed together.
> Otherwise, [1] is changing the behavior of loongach,
> while the commit description does not mention it.
I agree. It would be great if Jamie could squash them together.
Thanks,
Rui
>
>
>
>
> > Thanks,
> > Rui
> >
> > [1]: https://lore.kernel.org/rust-for-linux/20231020155056.3495121-1-Jamie.Cunliffe@arm.com/
> > [2]: https://github.com/heiher/linux/commit/c504d83a6edd963e2ba58ec538e3f06da78b187e.patch
> >
> > >
> > > > diff --git a/Makefile b/Makefile
> > > > index 88ebf6547964..23100f193da3 100644
> > > > --- a/Makefile
> > > > +++ b/Makefile
> > > > @@ -566,7 +566,6 @@ KBUILD_CFLAGS += -fno-strict-aliasing
> > > >
> > > > KBUILD_CPPFLAGS := -D__KERNEL__
> > > > KBUILD_RUSTFLAGS := $(rust_common_flags) \
> > > > - --target=$(objtree)/scripts/target.json \
> > > > -Cpanic=abort -Cembed-bitcode=n -Clto=n \
> > > > -Cforce-unwind-tables=n -Ccodegen-units=1 \
> > > > -Csymbol-mangling-version=v0 \
> > > > diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> > > > index 5bfe5caaa444..0f339d4abd40 100644
> > > > --- a/arch/x86/Makefile
> > > > +++ b/arch/x86/Makefile
> > > > @@ -68,6 +68,7 @@ export BITS
> > > > # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
> > > > #
> > > > KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
> > > > +KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
> > > > KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2
> > > >
> > > > ifeq ($(CONFIG_X86_KERNEL_IBT),y)
> > > > diff --git a/rust/Makefile b/rust/Makefile
> > > > index 87958e864be0..8d75a6ffe951 100644
> > > > --- a/rust/Makefile
> > > > +++ b/rust/Makefile
> > > > @@ -428,8 +428,11 @@ $(obj)/core.o: private skip_clippy = 1
> > > > $(obj)/core.o: private skip_flags = -Dunreachable_pub
> > > > $(obj)/core.o: private rustc_objcopy = $(foreach sym,$(redirect-intrinsics),--redefine-sym $(sym)=__rust$(sym))
> > > > $(obj)/core.o: private rustc_target_flags = $(core-cfgs)
> > > > -$(obj)/core.o: $(RUST_LIB_SRC)/core/src/lib.rs scripts/target.json FORCE
> > > > +$(obj)/core.o: $(RUST_LIB_SRC)/core/src/lib.rs FORCE
> > > > $(call if_changed_dep,rustc_library)
> > > > +ifdef CONFIG_X86_64
> > > > +$(obj)/core.o: scripts/target.json
> > > > +endif
> > > >
> > > > $(obj)/compiler_builtins.o: private rustc_objcopy = -w -W '__*'
> > > > $(obj)/compiler_builtins.o: $(src)/compiler_builtins.rs $(obj)/core.o FORCE
> > > > diff --git a/scripts/Makefile b/scripts/Makefile
> > > > index 576cf64be667..c85d130a4125 100644
> > > > --- a/scripts/Makefile
> > > > +++ b/scripts/Makefile
> > > > @@ -11,12 +11,14 @@ hostprogs-always-$(CONFIG_MODULE_SIG_FORMAT) += sign-file
> > > > hostprogs-always-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert
> > > > hostprogs-always-$(CONFIG_RUST_KERNEL_DOCTESTS) += rustdoc_test_builder
> > > > hostprogs-always-$(CONFIG_RUST_KERNEL_DOCTESTS) += rustdoc_test_gen
> > > > -always-$(CONFIG_RUST) += target.json
> > > >
> > > > +ifdef CONFIG_X86_64
> > > > +always-$(CONFIG_RUST) += target.json
> > > > filechk_rust_target = $< < include/config/auto.conf
> > > >
> > > > $(obj)/target.json: scripts/generate_rust_target include/config/auto.conf FORCE
> > > > $(call filechk,rust_target)
> > > > +endif
> > > >
> > > > hostprogs += generate_rust_target
> > > > generate_rust_target-rust := y
> > > > --
> > > > 2.30.2
> > > >
> > > >
> > >
> >
> >
>
>
> --
> Best Regards
> Masahiro Yamada
>
next prev parent reply other threads:[~2024-01-27 5:08 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-20 15:50 [PATCH v4 0/2] Rust enablement for AArch64 Jamie Cunliffe
2023-10-20 15:50 ` [PATCH v4 1/2] rust: Refactor the build target to allow the use of builtin targets Jamie Cunliffe
2023-10-22 10:55 ` Catalin Marinas
2023-10-22 11:07 ` Ingo Molnar
2023-10-31 0:24 ` Trevor Gross
2023-10-31 11:58 ` Catalin Marinas
2023-10-31 19:01 ` Trevor Gross
2023-12-12 16:47 ` Will Deacon
2024-01-22 9:17 ` Trevor Gross
2024-01-25 3:19 ` WANG Rui
2024-01-26 19:37 ` Masahiro Yamada
2024-01-27 5:08 ` WANG Rui [this message]
2024-01-27 17:31 ` Miguel Ojeda
2024-01-22 9:29 ` Alice Ryhl
2024-01-24 9:12 ` Masahiro Yamada
2023-10-20 15:50 ` [PATCH v4 2/2] arm64: rust: Enable Rust support for AArch64 Jamie Cunliffe
2023-10-20 16:45 ` Catalin Marinas
2023-10-21 13:40 ` Miguel Ojeda
2023-10-22 10:48 ` Catalin Marinas
2023-10-22 12:14 ` Miguel Ojeda
2023-10-20 17:21 ` Andrew Lunn
2023-10-20 18:33 ` Boqun Feng
2023-10-20 18:47 ` Andrew Lunn
2023-10-21 12:50 ` Alice Ryhl
2023-10-21 13:41 ` Miguel Ojeda
2023-10-21 16:03 ` Andrew Lunn
2023-10-22 12:57 ` Miguel Ojeda
2023-10-24 0:57 ` Stephen Boyd
2023-10-25 23:55 ` Boqun Feng
2023-11-01 15:04 ` Linus Walleij
2023-10-31 18:31 ` Matthew Maurer
2023-11-28 18:29 ` Boqun Feng
2023-12-13 19:00 ` Miguel Ojeda
2024-01-22 2:01 ` Fabien Parent
2024-01-22 5:27 ` Behme Dirk (CM/ESO2)
2024-01-22 9:30 ` Alice Ryhl
2024-02-09 17:38 ` [PATCH v4 0/2] Rust enablement " Catalin Marinas
2024-02-09 21:41 ` Miguel Ojeda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAHirt9josVNzcwCM5Y3MsVJC9dz+iRg6r_64OK4NWPeOOo_X8g@mail.gmail.com \
--to=wangrui@loongson.cn \
--cc=Jamie.Cunliffe@arm.com \
--cc=andrew@lunn.ch \
--cc=boqun.feng@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=lina@asahilina.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=loongarch@lists.linux.dev \
--cc=masahiroy@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=steve.capper@arm.com \
--cc=tmgross@umich.edu \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).