From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA566355F54 for ; Sun, 26 Apr 2026 11:00:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201204; cv=none; b=olRs6U1Zof+oid3HyVDvWIBJBJfujaCjud87rpBGGCh6cJlF++hlVGEe+WsmQxogyx9m6oOyrw8YYIow1+GxRRKs4kEbYF0BIQCx+qQGN1lt1Jicn6blJkmgdgaDNML41tqcI9ujQTwf8hAWdeaG0fiopoJatMdq5fcL+ZbtCFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201204; c=relaxed/simple; bh=uM0zk/44TFoxb5BAYwk7ldUeHHSI9KksYb+r15IWIf4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NtX/X54b4Rm0XD7ieRR50laT81xxge8C7GrcV7sT3uNjJMqI/VpcxLnV9GEckWkUMbRB6iuQUpL+L5lp64m+VB/oGedVepddPMLQQM5crcy4CdGbvSEeuYrkzQyIGKhsh8QLxPLxFRRaudXSv9I7/6SZar1tXnPSQOHG1+f8Iuk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bSr3RsZ+; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bSr3RsZ+" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2ad9a9be502so57843335ad.0 for ; Sun, 26 Apr 2026 04:00:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201202; x=1777806002; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=xY7w8LnDIE8HyaiKiCv1wqAMXYWCbDMiA1p0Co9KMuY=; b=bSr3RsZ+zTNGdzl3ATPgyZQOpwUsJVuWKIFep798LYwYgQvHeIVFrbI6cQF7ac3k6p AleqP3EIJhmBYTTFNqyRdz+dTWNtrgMsGSQxohWb/rUmzBn+On2QNesx5VqkOJoEnMPI Qq+RPhPXuTfRLXdeF8LdTivPqQCpQlUNcwGWRg1j+0qIouVD52dtnWv+mDvTQ0fX5Opq IXR/IEkUQZYWmSojXK4IcJ+r9s1QHweCPi074XNwJCc5/OS/DaSwzo6dOGZLcJJ6yJQ2 j7s6NRXoJ4bOmriXJoZF2YNbmkTY2lEqFatjmvoYlOcY8WiQSCVz0EyTtZwk1HJbs6aN ZaTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201202; x=1777806002; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=xY7w8LnDIE8HyaiKiCv1wqAMXYWCbDMiA1p0Co9KMuY=; b=BaHTj0axAU6OUij++zt6ciCzQ5vQrht/EgE8aGsYjp8OCey8dioxYMh5gymNIpwLb5 NFQo/at7qRcQEh34AN1iin2doBO2Y7EWs+waIgnkAC23sh7rY2wFoqG7Oq1j+yLHffjh jf9akY49QnMhVsTwPucQ61l3S9bxmRSqHC13fVMhEPYPfN6/A+Pu1aA28no+WIJv16+N 0kzDmT/gXWfkC3x8gg++KM2nrr+cWSOtFeaDUTrfWRfFqXpBxZcKC//05pZCDc379I7Y sAPH8ZKYeaj/IdvtqxJhfmc9Opr933G/tPMXdkoN9s6L0Cw4h+NoxAsRvPZpR/Z1wZOa kxpQ== X-Forwarded-Encrypted: i=1; AFNElJ+vOHKqpz1mZl/yyEZJovdfj6Jh5MWq4jTNwFaf1l6irphLx1mxs969gvvqMsVlfdAdYm2JTJoaxr5vutE=@vger.kernel.org X-Gm-Message-State: AOJu0YyVo58Y+YmQhHTlzf5YOoC/PUwvp4C14AEDSkxaFQJWIm1tm0sE k7jrDFFsSYx/27bh5hshn/XWTDdiUBj6NYLFgY4NCygwdQU97jDRsKWs X-Gm-Gg: AeBDievjurj1NWfxmR9/m7HPbTyvxFDXidLoINcRF70pZ61wNYkBDTSmv5Kn9T3E2Ti HsW0eO9m+bVw4hX/v+hCXTqg6yOd/yKHKYMC2Kd5/+1W0i4M42QmubHI4URgPb5VdvOBHqxFkNQ 3dCqu9qseNObsYdaNl/LxfPSCQFmjjPsmTc0HNtjMb3XzOTTqj+AjfBSWm0P9fSQFAiASkA9wta 5Imm38mk9lwFKMQg39JpPoD7G7l20fWoIKN3JaTGKkQsCTmoECn+NQH8BQQq/CXcMj6f3RohzV9 RkigOhBUJayns+ryUZxH0+51MOLn7AmFQ9A6orzGuUpQ8jyYi34yT2TwaoBCMlqI87S9b8DezRx d6mEUzCQABlLFj9uEWO0NaruFl/BxDq9LhQ5tpAf3ZUnCaRjYoN/uiiisMff8FUdmWWFLrtS315 qYNiVd8UmA6+L2p+8EOhzPQ/YkYRYTNb5hV3XYm9CXUuPyafxr4IgX24vbqLttAom4h+A8LLhcr MGaF2EXIhzVVS8= X-Received: by 2002:a17:903:b06:b0:2b2:5491:e32b with SMTP id d9443c01a7336-2b5f9f2bd43mr403518485ad.23.1777201202017; Sun, 26 Apr 2026 04:00:02 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.03.59.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:00:01 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH V15 1/7] rust: Fix "multiple candidates for rmeta dependency core" error Date: Sun, 26 Apr 2026 16:29:26 +0530 Message-ID: <20260426105932.2270364-2-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When building Rust code for powerpc64le with LLVM=3D1 and -j1, rustc encounters an error: "multiple candidates for `rmeta` dependency `core` found", with two candidates: 1. The host's standard library from the rustup toolchain 2. The kernel's custom libcore.rmeta in the rust/ directory This occurs because the build system uses `-L$(objtree)/rust` for host library builds (proc_macro2, quote, syn), which causes rustc to search the rust/ directory. During this search, rustc finds both the kernel's custom libcore.rmeta and gains access to the host's standard library, creating a conflict. The solution is to separate host libraries into a dedicated rust/host/ subdirectory and use `-L$(objtree)/rust/host` for host builds instead of `-L$(objtree)/rust`. This ensures that: 1. Host library builds (proc_macro2, quote, syn) only search rust/host/ and never encounter the kernel's libcore.rmeta 2. Proc macro builds use `-L$(objtree)/rust/host` to find their dependencies Special handling is added for rustdoc-pin_init, which is a host build (to access the alloc crate) but depends on proc macros from the main rust/ directory. It uses explicit `--extern` paths to reference the proc macros without adding `-L$(objtree)/rust`, which would reintroduce the conflict. The rust/host/ directory is added to clean-files to ensure it's removed during `make clean`. Link: https://github.com/Rust-for-Linux/linux/issues/105 Link: https://github.com/linuxppc/issues/issues/451 Signed-off-by: Mukesh Kumar Chaurasiya (IBM) --- rust/Makefile | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/rust/Makefile b/rust/Makefile index b361bfedfdf0..44ec1634714a 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -3,6 +3,9 @@ # Where to place rustdoc generated documentation rustdoc_output :=3D $(objtree)/Documentation/output/rust/rustdoc =20 +# Clean generated host directory +clean-files :=3D host/ + obj-$(CONFIG_RUST) +=3D core.o compiler_builtins.o ffi.o always-$(CONFIG_RUST) +=3D exports_core_generated.h =20 @@ -31,7 +34,7 @@ endif =20 obj-$(CONFIG_RUST) +=3D exports.o =20 -always-$(CONFIG_RUST) +=3D libproc_macro2.rlib libquote.rlib libsyn.rlib +always-$(CONFIG_RUST) +=3D host/libproc_macro2.rlib host/libquote.rlib hos= t/libsyn.rlib =20 always-$(CONFIG_RUST_KERNEL_DOCTESTS) +=3D doctests_kernel_generated.rs always-$(CONFIG_RUST_KERNEL_DOCTESTS) +=3D doctests_kernel_generated_kunit= .c @@ -146,7 +149,7 @@ quiet_cmd_rustdoc =3D RUSTDOC $(if $(rustdoc_host),H, )= $< cmd_rustdoc =3D \ OBJTREE=3D$(abspath $(objtree)) \ $(RUSTDOC) $(filter-out $(skip_flags) --remap-path-scope=3D%,$(if $(rustd= oc_host),$(rust_common_flags),$(rust_flags))) \ - $(rustc_target_flags) -L$(objtree)/$(obj) \ + $(rustc_target_flags) -L$(objtree)/$(obj)$(if $(rustdoc_host),/host) \ -Zunstable-options --generate-link-to-definition \ --output $(rustdoc_output) \ --crate-name $(subst rustdoc-,,$@) \ @@ -231,6 +234,7 @@ rustdoc-pin_init_internal: $(src)/pin-init/internal/src= /lib.rs \ =20 rustdoc-pin_init: private rustdoc_host =3D yes rustdoc-pin_init: private rustc_target_flags =3D $(pin_init-flags) \ + --extern pin_init_internal=3D$(objtree)/$(obj)/$(libpin_init_internal_= name) \ --extern alloc --cfg feature=3D\"alloc\" rustdoc-pin_init: $(src)/pin-init/src/lib.rs rustdoc-pin_init_internal \ rustdoc-macros FORCE @@ -520,23 +524,23 @@ quiet_cmd_rustc_procmacrolibrary =3D $(RUSTC_OR_CLIPP= Y_QUIET) PL $@ $(if $(skip_clippy),$(RUSTC),$(RUSTC_OR_CLIPPY)) \ $(filter-out $(skip_flags),$(rust_common_flags) $(rustc_target_flags)) \ --emit=3Ddep-info=3D$(depfile) --emit=3Dlink=3D$@ --crate-type rlib -O \ - --out-dir $(objtree)/$(obj) -L$(objtree)/$(obj) \ + --out-dir $(objtree)/$(obj)/host -L$(objtree)/$(obj)/host \ --crate-name $(patsubst lib%.rlib,%,$(notdir $@)) $< =20 -$(obj)/libproc_macro2.rlib: private skip_clippy =3D 1 -$(obj)/libproc_macro2.rlib: private rustc_target_flags =3D $(proc_macro2-f= lags) -$(obj)/libproc_macro2.rlib: $(src)/proc-macro2/lib.rs FORCE +$(obj)/host/libproc_macro2.rlib: private skip_clippy =3D 1 +$(obj)/host/libproc_macro2.rlib: private rustc_target_flags =3D $(proc_mac= ro2-flags) +$(obj)/host/libproc_macro2.rlib: $(src)/proc-macro2/lib.rs FORCE +$(call if_changed_dep,rustc_procmacrolibrary) =20 -$(obj)/libquote.rlib: private skip_clippy =3D 1 -$(obj)/libquote.rlib: private skip_flags =3D $(quote-skip_flags) -$(obj)/libquote.rlib: private rustc_target_flags =3D $(quote-flags) -$(obj)/libquote.rlib: $(src)/quote/lib.rs $(obj)/libproc_macro2.rlib FORCE +$(obj)/host/libquote.rlib: private skip_clippy =3D 1 +$(obj)/host/libquote.rlib: private skip_flags =3D $(quote-skip_flags) +$(obj)/host/libquote.rlib: private rustc_target_flags =3D $(quote-flags) +$(obj)/host/libquote.rlib: $(src)/quote/lib.rs $(obj)/host/libproc_macro2.= rlib FORCE +$(call if_changed_dep,rustc_procmacrolibrary) =20 -$(obj)/libsyn.rlib: private skip_clippy =3D 1 -$(obj)/libsyn.rlib: private rustc_target_flags =3D $(syn-flags) -$(obj)/libsyn.rlib: $(src)/syn/lib.rs $(obj)/libquote.rlib FORCE +$(obj)/host/libsyn.rlib: private skip_clippy =3D 1 +$(obj)/host/libsyn.rlib: private rustc_target_flags =3D $(syn-flags) +$(obj)/host/libsyn.rlib: $(src)/syn/lib.rs $(obj)/host/libquote.rlib FORCE +$(call if_changed_dep,rustc_procmacrolibrary) =20 quiet_cmd_rustc_procmacro =3D $(RUSTC_OR_CLIPPY_QUIET) P $@ @@ -545,20 +549,20 @@ quiet_cmd_rustc_procmacro =3D $(RUSTC_OR_CLIPPY_QUIET= ) P $@ -Clinker-flavor=3Dgcc -Clinker=3D$(HOSTCC) \ -Clink-args=3D'$(call escsq,$(KBUILD_PROCMACROLDFLAGS))' \ --emit=3Ddep-info=3D$(depfile) --emit=3Dlink=3D$@ --extern proc_macro \ - --crate-type proc-macro -L$(objtree)/$(obj) \ + --crate-type proc-macro -L$(objtree)/$(obj)/host \ --crate-name $(patsubst lib%.$(libmacros_extension),%,$(notdir $@)) \ @$(objtree)/include/generated/rustc_cfg $< =20 # Procedural macros can only be used with the `rustc` that compiled it. $(obj)/$(libmacros_name): private rustc_target_flags =3D \ --extern proc_macro2 --extern quote --extern syn -$(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/libproc_macro2.rlib \ - $(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE +$(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/host/libproc_macro2.= rlib \ + $(obj)/host/libquote.rlib $(obj)/host/libsyn.rlib FORCE +$(call if_changed_dep,rustc_procmacro) =20 $(obj)/$(libpin_init_internal_name): private rustc_target_flags =3D $(pin_= init_internal-flags) $(obj)/$(libpin_init_internal_name): $(src)/pin-init/internal/src/lib.rs \ - $(obj)/libproc_macro2.rlib $(obj)/libquote.rlib $(obj)/libsyn.rlib FOR= CE + $(obj)/host/libproc_macro2.rlib $(obj)/host/libquote.rlib $(obj)/host/= libsyn.rlib FORCE +$(call if_changed_dep,rustc_procmacro) =20 # `rustc` requires `-Zunstable-options` to use custom target specifications --=20 2.53.0 From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19B232FD69A for ; Sun, 26 Apr 2026 11:00:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201219; cv=none; b=ZzvsdneB9Mc5V8gTmBRHiWqRRNpesqBIC+gkh3g2E0wBESrN9mCVdBMtX2+5t4rD7//39HbM0HFdh42u9ZG39CxaeL3DYQ2BPjX2Oh2IqmbId5NMgwCL0FtNyTvg1eqkO66nY1AG7skEWkm9gAL49poO2QPzDPaCylFhIWY4s/I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201219; c=relaxed/simple; bh=btkQtdgQ0/faA3G8fQ7vJ2dLzybospS9rvLC2N23AHs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tJK5vu4/FoRkyDeqIYkOzdu7mALVDrJGcEgXps4au5BetnbpS4cqcb9Ma6XFMGSN4bPTi0pCuMpgsXdpl1Rvm6PP9J8g4y77d8TLAjXh6NGgCwNTo2lSzM8+1WnqCoMJayqeQIoaJvO9DHt34uOwxITzcrKxiKKp81YzZiWrlaw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ijOPenyA; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ijOPenyA" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-c70fb6aa323so3200433a12.3 for ; Sun, 26 Apr 2026 04:00:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201217; x=1777806017; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3XNHcqPiS87Phn06IpxO8T5jrJVeHx6CGab+nQaKnDs=; b=ijOPenyADDxyQKTMNlXJhlyPso1afqQItvwL0SCOhnW8W1V3+bMgVLIn9uS0bL1TwI UbQdmRBcqSnlJM8CN25W2nantgNLLk3obvPlh029gG2BuP+DCLOwPxd7jjsenFN+BnRe PRzmLEXI5d2Wvxr1H9raZeNykZms7F6zPEfxq7mp/TrlHClx6+X9XVNmhom+iJLTopOG IE7WOsBKnGFH6GcBb7HEpg8HNcnQ8Ue9BQmAJVIeVvdiRpdp7t0LDKwyPiygHaji5ET7 JkHlXJ2SnDVnAkhx4hVYTLlOa0K2q53BmV39BSVdrDEEjmc8hxXEp+HuAjVcXPbH6oc+ +xrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201217; x=1777806017; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=3XNHcqPiS87Phn06IpxO8T5jrJVeHx6CGab+nQaKnDs=; b=Iml5Uzdf/0JMgwMZfla8Rpt6IfUWYOtawMDRioK/KPLI41HZEgL7EDKKZI7UD+8Fvd EVDalO3Bt5LhkhVO7fdRw3e9GdNo7x1gkppmre2h5QMpBTPRXLmGbNXiv4nS7vQw9Eq8 py6EQ1HHYwkQ8R0WuwGcUUCJEylLQTUbwKS7q4hGUDzSXxz0CeabE5hnA4FAJRXyUNn8 mwpOBwqpPXVIxPL8hCZ/pPVo1ZIIzObWoAmc6mWAXPrz2dwe81LMp6rRHbGYfbJA84b6 j4z5EBe89BP4CaTYO6qFQCpw+yHxT8U0z94VzQMGmSsyREkP6TNoaA3px9Jjh+KomDaF 0L/g== X-Forwarded-Encrypted: i=1; AFNElJ842BHypYsSzMBGUOWNle3ebgo0u0wVNFb6cgC6HUrVKQHFstsZF2y1LX9jWsWPa+MjC21aHQsv2WlT43g=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9jMHaBo1u4RRrJS6RYKRtaSYhE/FdX6Kbwc8AxQJAUblrMzCb of7bxr0H9CRuo0lf2s7IKXcEtbilsiXOBBb+dpPVcZQ4sRnaq9scnQsf X-Gm-Gg: AeBDieuu0A17+UYmkrxiJWer4J8i02wDT8+U5Nvl0t22RFEV6j6BgM1R4M7MRaaXYNR uFHgYVfYQeqNO/Yh/8b1k0KPNqu8oVpS2ipoPX8/LZpJ3SyrwtmDbaBvyHqnlYuFkBLtB9IkvUT 2vU2Hg000l6L17jOelpilkK5GfyTLG9wkB4digsFLpIYNvRgz8XLjCU1eRWGbXHuxdL4hnuAEoI hXKttVetWVb10mq38UOVDCVYGEdkApfr8Ra//d4SK6ai4R7srT/dEbIWHMD15e9gTZL/S46R4D/ IHInTu1olXKKPWZfacG0a8w6pYtW1GbsGq2VY6LMyYZF02XIEfLHmxYR8kCNrYVjaPqID0BdhbN I6/KBHXPFX4IHXedzaJ9AnlAVAPy/ZlennsJIiOdbjHqXiPC0qwnNO3o8rug9QyZG4zTuWPDS+X jqapGKGLq5UbYmBAlCh4Qv8SeBg0R5cC+3+mtZQptX75YGEXDrhlf/daYlJjXwJ7W253DybsOPx 1lhcJ7762ltwqY= X-Received: by 2002:a17:903:2acc:b0:2b2:497e:3f6d with SMTP id d9443c01a7336-2b5f9e8cdb3mr378037025ad.8.1777201214089; Sun, 26 Apr 2026 04:00:14 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.04.00.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:00:13 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH V15 2/7] dma-resv: Fix undefined symbol when CONFIG_DMA_SHARED_BUFFER is disabled Date: Sun, 26 Apr 2026 16:29:27 +0530 Message-ID: <20260426105932.2270364-3-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable When building with LLVM=3D1 for architectures like powerpc where CONFIG_DMA_SHARED_BUFFER is not enabled, the build fails with: ld.lld: error: undefined symbol: dma_resv_reset_max_fences >>> referenced by helpers.c >>> rust/helpers/helpers.o:(rust_helper_dma_resv_unlock) The issue occurs because: 1. CONFIG_DEBUG_MUTEXES=3Dy is enabled 2. CONFIG_DMA_SHARED_BUFFER is not enabled 3. dma_resv_reset_max_fences() is declared in the header when CONFIG_DEBUG_MUTEXES is set 4. But the function is only compiled in drivers/dma-buf/dma-resv.c, which is only built when CONFIG_DMA_SHARED_BUFFER is enabled 5. Rust helpers call dma_resv_unlock() which calls dma_resv_reset_max_fences(), causing an undefined symbol Fix this by compiling `dma-resv.c` file only when CONFIG_DMA_SHARED_BUFFER is enabled. Fixes: 9b836641d3bf ("rust: helpers: Add bindings/wrappers for dma_resv_loc= k") Reviewed-by: Christian K=C3=B6nig Signed-off-by: Mukesh Kumar Chaurasiya (IBM) Reviewed-by: Gary Guo --- rust/helpers/helpers.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c index 625921e27dfb..09ee5cac600d 100644 --- a/rust/helpers/helpers.c +++ b/rust/helpers/helpers.c @@ -57,7 +57,9 @@ #include "cred.c" #include "device.c" #include "dma.c" +#ifdef CONFIG_DMA_SHARED_BUFFER #include "dma-resv.c" +#endif #include "drm.c" #include "err.c" #include "irq.c" --=20 2.53.0 From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1BCC35838F for ; Sun, 26 Apr 2026 11:00:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201234; cv=none; b=jTCQJNVIsBh/1mCldZRKz7+pMHheSORoOSEHQdjmloMiV+qaBKyExlwJtwHSNwr+c8meYWbziXUShGPpC18L1Vb4hbVjWiIwax7YC66lK+7nAfqeyjYAg0rWjIiFnvGuRTvBue846MbLssi9rFX1CgFXVvi5ehQYbDtJGY5RnSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201234; c=relaxed/simple; bh=8WQ7jEq8bJBsdnlHGUXrbWXnXrrr5Xxc2+zvN+1cF+Y=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QHPf+6Y5/ug9PjgWjOlOVEdPes1PKj+Ovd+sqraYZ0VrBqhg1cjIEUMh//oocBdTz/GFiCVClojI/NxJWlQLsUeimUelfXgqMBkddXjggtvlKYmys63ZtmN7xw3pXKfYN8gFHKccfbOt5ms8NSVVn9PyOcXGl7U0vuulug4JzqA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=i551RcLq; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="i551RcLq" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2b299b3c739so42653135ad.3 for ; Sun, 26 Apr 2026 04:00:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201232; x=1777806032; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=SIf376OZyXcpY0mdrIrP1nTWV/VE0v5g8114Fjjgl84=; b=i551RcLqsnhytE+pss10bs8p5npLisQ5cMT4kPat6GSXlRr3bpMgayHI/uZPJUz+FM WLfJmzUehVHp9GfTjBpTTVQ4izl8feE/GpqJxRmzkHAxWMAOWepC7v8DWu0ZS1OGCIQc 4/9K/QV3Jrz4EPZuLC+r0rFGZm+po5yUowpx812P9RO+Y0khmisFWJB+o4x/GBRkJWc2 zVHBCbNntfw9vtzSevcDp/T5dOZURBufS3kKW7cwNQ+VaYW9YTninwNNuCobt4y5CsCA Z0S+/ScGr6Pp2x87RxjKGidJo+1i8PSJ3C3zpX9bekO/9v3171XKg+dGY4G0RSPmX6Ca 3Rqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201232; x=1777806032; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SIf376OZyXcpY0mdrIrP1nTWV/VE0v5g8114Fjjgl84=; b=MslvoygqsZjTsp8l+5MwmTpaIup2eJeiMSMJ2gNuZOCBsxxP7Ec0M1f8thryzbkWk7 S7MBGGS3FU0LrBdDw5u1nfSmRmtzoyz0lwVq/xRHevViuI9g1v7gkI0c8iYP/HX0qrXu JNjusmD+CROXOAABA6jSOpmDgQU3c44uuS8h4uXpSCh/AeNobFFF2i9tPZIYXDMo8fDQ Zlry7gk+ZJnZuFux7zYPGHgCDl9s6j8HTYC3ipPpLKPBd4e6tyjpAsB5y/kbI0wLuFwu Eff8b8qiBu2LB/gmQHX+xxDM/TLW/OdjdqpH/giKshrfHsaIbLW2msE7+gSy/Uwm+T5B m7aQ== X-Forwarded-Encrypted: i=1; AFNElJ/kh2M2IAjuBvnS++8v2urB4Azrac/67OtFmBcLyALsTN/9GFYlJVrlxLqsAiqqXQdYJG5kTFpT44S3r+8=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1IaPWY4Oqrpib8dNrMiso7tDGsLgG0sbENKpK+kdS/o305uaF BjqrMxgrLOrmEXReghVgULptO4y/cbhhBuhxbTkTywulMGHhUdFRQwaN X-Gm-Gg: AeBDies8C/SSKvgs1MGBIqNgUiusJuiAIwkrwcc2HSFlmhQ628xTwugy3BCH+uf+bc6 PTrbuNtkNinROOdidZ9U3a5dQtdjCiMnEyBaqEuvs1rqRtnH6u3Yjg3F6rmA6qnc0gXYtAhiyDn XzgDJcd2GzsUM8pUaLupD4sU5lScumOs5/93vimeJj75ermwxvXDxyvnCftYrFiaXnVtZm7vJKg GP5DF5qp8NjyBKQ6qDkTFh3ypYjiZgCHYMNOYGXs3OAX7HmSI4SkqShAVfGjoFbnu22ALsLaKYv irhjk6N2hmrC50DwpjaLL0tklS5bbBoCYVR2XOwN1ZeCL1bUMF5vl499sE3gs8KRDirDgS7Nr8W lomj3xP2vieJa8tXqf8THxBnLJkpnKoosY3fnIBK4OUV3K9jrjfaD99EMQHJBBqFfO9ijp8HORw YkDyfTlqmzMdWQaDpcRdQBBg8TZL3Jkw2MRmVZrbNOc7dxmLhEi95QFE+CMgYO+FOgZYzoSoKBu 24YjB2NXE9D8vVPzc96PkX15w== X-Received: by 2002:a17:902:8649:b0:2b4:65ab:57cd with SMTP id d9443c01a7336-2b5f9fbdd39mr296814685ad.36.1777201228981; Sun, 26 Apr 2026 04:00:28 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.04.00.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:00:26 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH V15 3/7] powerpc/jump_label: adjust inline asm to be consistent Date: Sun, 26 Apr 2026 16:29:28 +0530 Message-ID: <20260426105932.2270364-4-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Added support for a new macro ARCH_STATIC_BRANCH_ASM in powerpc to avoid duplication of inline asm between C and Rust. This is inline with 'commit aecaf181651c ("jump_label: adjust inline asm to be cons= istent")' Co-developed-by: Madhavan Srinivasan Signed-off-by: Madhavan Srinivasan Reviewed-by: Alice Ryhl Reviewed-by: Christophe Leroy (CS GROUP) Reviewed-by: Gary Guo Link: https://github.com/Rust-for-Linux/linux/issues/105 Link: https://github.com/linuxppc/issues/issues/451 Signed-off-by: Mukesh Kumar Chaurasiya (IBM) --- arch/powerpc/include/asm/jump_label.h | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/include/asm/jump_label.h b/arch/powerpc/include/a= sm/jump_label.h index d4eaba459a0e..3016e9c8d6bc 100644 --- a/arch/powerpc/include/asm/jump_label.h +++ b/arch/powerpc/include/asm/jump_label.h @@ -15,14 +15,20 @@ #define JUMP_ENTRY_TYPE stringify_in_c(FTR_ENTRY_LONG) #define JUMP_LABEL_NOP_SIZE 4 =20 +#define JUMP_TABLE_ENTRY(key, label) \ + ".pushsection __jump_table, \"aw\" \n\t" \ + ".long 1b - ., " label " - . \n\t" \ + JUMP_ENTRY_TYPE key " - . \n\t" \ + ".popsection \n\t" + +#define ARCH_STATIC_BRANCH_ASM(key, label) \ + "1: nop \n\t" \ + JUMP_TABLE_ENTRY(key, label) + static __always_inline bool arch_static_branch(struct static_key *key, boo= l branch) { - asm goto("1:\n\t" - "nop # arch_static_branch\n\t" - ".pushsection __jump_table, \"aw\"\n\t" - ".long 1b - ., %l[l_yes] - .\n\t" - JUMP_ENTRY_TYPE "%c0 - .\n\t" - ".popsection \n\t" + asm goto( + ARCH_STATIC_BRANCH_ASM("%c0", "%l[l_yes]") : : "i" (&((char *)key)[branch]) : : l_yes); =20 return false; @@ -34,10 +40,7 @@ static __always_inline bool arch_static_branch_jump(stru= ct static_key *key, bool { asm goto("1:\n\t" "b %l[l_yes] # arch_static_branch_jump\n\t" - ".pushsection __jump_table, \"aw\"\n\t" - ".long 1b - ., %l[l_yes] - .\n\t" - JUMP_ENTRY_TYPE "%c0 - .\n\t" - ".popsection \n\t" + JUMP_TABLE_ENTRY("%c0", "%l[l_yes]") : : "i" (&((char *)key)[branch]) : : l_yes); =20 return false; --=20 2.53.0 From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8696617BEBF for ; Sun, 26 Apr 2026 11:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201245; cv=none; b=pw06iWeBrlElNRyoPDXuYQRfkOfZFeOQ11ctzqNumTPDTrY7OCTKBYDpB8Fsjnu+TyLIQggp2tlgg5bx6ocY3uTbIk8vk22H1HM9NjUX6BmmkMyKHL+PYeY/slr2Q21cNEaxMq+8thUdo2Fb9PlLVe0ue9MWBCMk/jdtgAm6E7A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201245; c=relaxed/simple; bh=r1aKh5I901VyW1MTDbYbzZkzaliwYbiMtV4wPKGZXxM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TH1GiIdzlwCbk0B0KOhjJZ1Lx8OYiTYNx5i18XQbajplM0iSTrGGsvrHrlsSDe8eZkBI/GV2MoNl1yElM/f0nefDC9Mc+mmVbUAplwC9zJGwlS3aw88AVZivRQ+Ff8ctM0RmM/4/U2u3MD0neJY2HVH1Q1W2AgcBjbteqWshBdc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CMbfMKAi; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CMbfMKAi" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2a7a9b8ed69so78903085ad.2 for ; Sun, 26 Apr 2026 04:00:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201242; x=1777806042; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=xKjAi9HbHD3A8vBvpsVmPpMZEiOAHaxheYu3agjVGmU=; b=CMbfMKAidMbeB29RqxtuvykHyu/bjvrAjPUDA1UL4M9FXchCxCkGfBokPYCvZtwyge g/Y/BGmqxKQIbnE519jIGH789DPPG3VIdAEoaW3qYmCpk9j4Ts1Uak/hNqEm8JU5jQ/N kUsN32MZ860ba9lrQsacPO/wmsFcTd5bAYaE+7vPNBFcJf6BHBQDthR8DlWqmTkii37l OFnNSW6Gil3xUxIW81qrDTaloMtSzR5ytNc9UzKXSvBEn7XtE4o4yE9dMeI7PKnJwh9A vzooHdE70GO3EqRcUi6HF6guxcx5oRRV/zuyQoW/aAn3OwAGRnd7POT1CC8NGnjUKDu3 0Kvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201242; x=1777806042; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=xKjAi9HbHD3A8vBvpsVmPpMZEiOAHaxheYu3agjVGmU=; b=qbDVTdNno7VHAK+q499K7SOYag1o7J/VIsTqMIPOURZBL4bO+D7DHe2wQgCBjuGMP5 T0VImD6xRtjuCJl9rKgQBwmh44nCo5ad5+IdIsnDIu3wlWbq+oV5e8KU1mP1nG6KNN0z CS/DN+qEEJ3v52JmnTpj+snnhxsLoPI6ho7DZN8M5zrwaSRHEFN1+bNznKsa0CZQBmei 5ze9MZoCnA4ilAs5JXZgN00+7jkCvQaIluvChjtNi1op7NDckzrIAesZDx6kCQCL0EB1 R2MeR8kVLUV7MhpwHSwBHGdgWXXw0RBQ9CMgp+ZRAVgYntja6AOJ1JKEZZFjf3Vcdvcu H5sA== X-Forwarded-Encrypted: i=1; AFNElJ/Sk4Tz/CXBAIlnJDX5SK3CuCBQHnS81dQhlikC6HRT4dV6eO95hu4s5dTjNgZO0uyQCebwmWH4/oBQJyU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxjj9SfkDmWE5KUZCacmEvxVBHKUn5V8T8oiNBc2hl/GioeHoZW 7F9Osxl/St3YYR1n9cE4QOSCwxIu4Pua4ZAYLI9Vb4/o24NAQbNyASLv X-Gm-Gg: AeBDieu3hEBcF06V2Yc8cSRA2KHfOAmmPKc2jC5OWZT1HESkJsH0aCpIF3KJX2vjDS0 nxqBjy3Qo3OW6KeMQJPxKVkQFkd6KiLWtOizve/r4MVgZh8ByBJeA5FCWW9Seu933veBs72wjDc iIDuTVhsUqvLkxgiV02dG7dnquev3Kj0eOJIVQazNeA14/rbbR5prcV+tStfIffb0Dn/NK/qVxm yiGT+5C6O8dVw4EogS9PEn2LVan8UJJYaJvXemWNjxlWql4t1vaLHSrDu/iSBWu9tPRhN7yURsz INhvLmzbsFsqCHZN6A6rxo6nrMTW2TE7Cykb7PH8aoA2CLmpSXI/LRF4jzIao1XssQccrQOcvnx qLNfEabFuBWs1OU3894jppGOzBNJRuEXtCcCW4MkdMAn1KsoEGICH8q/aqqwORw1n42oigu8fVb OZWgEWHdAj1mkE8jth5D0naFtGu9japJoLakpgooPf7rv6VXCpNHyctuMbQTQWMPS0cE/nXKHPn dyacz3jPA93Tsw= X-Received: by 2002:a17:903:32c9:b0:2b0:5923:5194 with SMTP id d9443c01a7336-2b5f9fa70e1mr403887325ad.27.1777201241796; Sun, 26 Apr 2026 04:00:41 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.04.00.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:00:41 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH V15 4/7] rust/powerpc: Set min rustc version for powerpc Date: Sun, 26 Apr 2026 16:29:29 +0530 Message-ID: <20260426105932.2270364-5-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Minimum `rustc` version required for powerpc is 1.95 as some critical features required for compiling rust code for kernel are not there. For example Stable inline asm support which got merged in 1.95. Link: https://github.com/rust-lang/rust/pull/147996 Signed-off-by: Mukesh Kumar Chaurasiya (IBM) --- scripts/min-tool-version.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh index b96ec2d379b6..406895621511 100755 --- a/scripts/min-tool-version.sh +++ b/scripts/min-tool-version.sh @@ -31,7 +31,11 @@ llvm) fi ;; rustc) - echo 1.85.0 + if [ "$ARCH" =3D powerpc ]; then + echo 1.95.0 + else + echo 1.85.0 + fi ;; bindgen) echo 0.71.1 --=20 2.53.0 From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B75F4293C42 for ; Sun, 26 Apr 2026 11:00:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201256; cv=none; b=eX+ISf1PsVjwy4L8beto6XqSy4806XxTQ1KHn6vjh5sUUXg91F9vZsya6315GayYy2VvVGfTA+k+t1g+oRYr41PhfCk5P8RrAATkqxpv5wubiZyOEwBrW+WOMrcr97W8+/afMx7Wl8n3WvP6fEwet2swp8JN30tb2q6ATL7V5Ac= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201256; c=relaxed/simple; bh=bZp8zfSf0+0j2MuhSlyeDxaKsIo8xAezFmdEdikJQpA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JJNL1JMn5J7uomgwAUM1+TNWzplIm4CII14IP+b5Kv7Q3P+nVu+yuajYHhNGVFLjqbV+TKFK5gjdNl8mqow5L8FDZLbyASGRYg3NC16hVTnyRB6C6Eim1e2mYI6hW7rrNiShrMC1LLRh2Fa6Yb33ea6/nMPzeLAonzf7OgV9fZk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dcu63PrJ; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dcu63PrJ" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2ad617d5b80so54130415ad.1 for ; Sun, 26 Apr 2026 04:00:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201255; x=1777806055; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=edTE4+K3AUC8N+XPcCOjDXD3S338RUHsqJvIH7+h8+A=; b=dcu63PrJLWxZ4VxPmnLW2NCGNll1a6kDsdlbPuSmNNRU23Qpg2xlyrNyWp7brLDGWI aFyPMAmA/4bdn2/HUBb80dAZ692fYIvu/yxP8e6hnMZpPlnet3QRnPKMShSj+w8dCzXY qdX6M707ijQt7prxtHXb5BsbfWhq6ZFifDLE/kMEg+Od1gmjbiTI/KNdCE1YhOXvH1/Z UDvdvt6+qPWf4pCQ5ISAFRP652RPd2ciN1T/UvAFgo9IJWt9nflpQV46HmDghAedBvXO ZokJW8MbCLvG/QTdVgW1WWpjZQC2JlRWQegwRczFGJItNBDa0lcGPfvuqoA7Fr7L/gha IYNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201255; x=1777806055; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=edTE4+K3AUC8N+XPcCOjDXD3S338RUHsqJvIH7+h8+A=; b=l3RAUk640KIgY4FhDDX3Z9ujb+aOvw+7klCldHJB+gXWbewYeZM6fFQPeorQl7pRoZ +kXvMQqQm5poLNGPyo/1hWmP0xEoTG34crcdK916rPARB7ig7a0xlnKAXac9fBP2CeQj eUluolJ5dSwbgvFsZ7vX5Lnf7GEx5H7Pbw6MAuwvq4nS6VhJFtcJ8stYwaHTL4xkSeGP hOicly+IgHG3eAEpNnv1Oav/4nwZOlazOIa7OPIxAmoKtacOcAU0stWsa+MHJYZzYAf+ Y1JBI2WVLZRldtndfVtWfAxy2CLEUeodSmLngaGpCJd5gBzj8xgbnQP5+2IxQVjkGlrR Vs9g== X-Forwarded-Encrypted: i=1; AFNElJ+0a2hLiof4g+b8mwpdAiSn5yg/mjZWZIDqSHF8cU6yq5oSxQjJkS+NI0CEALjHT+jLaRmms9FMEmei2gQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yxtmw8AIpqP4P/ybQrSD8nBhGdAuMM34cyi9kMuK5daoZJ6RyX/ UARoRaerCRiiQSaY+zq0AznW6sj53P8ukRKnHozrY+SV5M90Kncbz2Mt X-Gm-Gg: AeBDieuIFmXNDCiYs3/BpKCLUkYbha6QVHcPx0q6VTH66ALs3q9JwRueyw4TswV2AN4 hKEeTiZESHBRe0XAiPQJNYmwHOkclbNz6J65bTs4Czb7CgiEtsmDps5W1AA649I+Ttiko8uzhv/ FyqsRQCcqit2fmJZ69w2QyllG6Vvc1EvLMPBHhCpzcX30lcUqS/DoCNxVLC4fpwQHcaEiPSjdCm w0woxUH48maFD8MU+9ErcI9ZHswHDEyUGnpTtWsn5EOLD1G9/XAE114CzTxMOqoiLpkg80l8p9g Usg/j5fmIS9/NaMORkuQutWOkxtvNOey/PDIh0vbVDIoW5DoTW0NlePMogQQwWOUIiCjY8NF2AF gPTyOwK2JycBPUDiOH6wii7uF7h2foSAWMF38wIUWYxul+tXOkHtQxuA24J5r8mhLWaT0X2W/Et Y1XbxRIDBSu+lH+TwrkC4dH04aF4qSLi2NAbk+IaRcpuEGFei9VU9tV4nZ6VBXOPJJsdz1cobBk 3HxRhQCqBIZdC0= X-Received: by 2002:a17:903:2284:b0:2b2:5822:7a70 with SMTP id d9443c01a7336-2b5f9fcfc2dmr396373895ad.38.1777201254932; Sun, 26 Apr 2026 04:00:54 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.04.00.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:00:54 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Cc: Link Mauve Subject: [PATCH V15 5/7] rust: Make __udivdi3() and __umoddi3() panic Date: Sun, 26 Apr 2026 16:29:30 +0530 Message-ID: <20260426105932.2270364-6-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Link Mauve The core crate currently depends on these two functions for i64/u64/ i128/u128/core::time::Duration formatting, but we shouldn=E2=80=99t use tha= t in the kernel so let=E2=80=99s panic if they are ever called. This doesn=E2=80=99t yet fix drm_panic_qr.rs, which also uses __udivdi3 when CONFIG_CC_OPTIMIZE_FOR_SIZE=3Dy, but at least makes the rest of the kernel build on PPC32. Signed-off-by: Link Mauve Signed-off-by: Mukesh Kumar Chaurasiya (IBM) --- rust/Makefile | 4 ++++ rust/compiler_builtins.rs | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/rust/Makefile b/rust/Makefile index 44ec1634714a..d70fb186cae9 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -616,6 +616,10 @@ ifneq ($(or $(CONFIG_ARM64),$(and $(CONFIG_RISCV),$(CO= NFIG_64BIT))),) __ashrti3 \ __ashlti3 __lshrti3 endif +ifdef CONFIG_PPC32 + redirect-intrinsics +=3D \ + __udivdi3 __umoddi3 +endif =20 ifdef CONFIG_MODVERSIONS cmd_gendwarfksyms =3D $(if $(skip_gendwarfksyms),, \ diff --git a/rust/compiler_builtins.rs b/rust/compiler_builtins.rs index dd16c1dc899c..fc6b54636dd5 100644 --- a/rust/compiler_builtins.rs +++ b/rust/compiler_builtins.rs @@ -97,5 +97,11 @@ pub extern "C" fn $ident() { __aeabi_uldivmod, }); =20 +#[cfg(target_arch =3D "powerpc")] +define_panicking_intrinsics!("`u64` division/modulo should not be used", { + __udivdi3, + __umoddi3, +}); + // NOTE: if you are adding a new intrinsic here, you should also add it to // `redirect-intrinsics` in `rust/Makefile`. --=20 2.53.0 From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A33854723 for ; Sun, 26 Apr 2026 11:01:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201271; cv=none; b=RGTLCdwOBBNzNqNG0ALwusoHZrCSb5NrGu+Ys+qcdR+aOV+ZSJ0/w6noTvcT6LATaXX6xKpwtxM1dpw5DA9oFlGCRL+kUKO7vz3YwLQC+g4j2laqzBcSLODoFCQtekM2oGvBbaO2jU3Q/bei3I1AFESpbTttfavBuA+OSr2mz1g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201271; c=relaxed/simple; bh=Y35TwnGeAvMsWCZrToGDNiwgBNmhmSkpO5BQeJbV4PI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eiKXP9ZhUkqEk95XL8dZ5JZPimxVlx49zigkVGb6LM2qsVNMrRgPdyX+ECj7sBgVvzEKC4+GFGoI3M0JtP4rLZ2+Y/3mDsx72MZOwqAG2XjPPMLxvTWyXvJx1yH8aO4ivEyjtfUZwuWEfHO7o05JLPItKE6uduU1iPPYDM666vg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b3dSHFyt; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b3dSHFyt" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2a8fba3f769so41411315ad.2 for ; Sun, 26 Apr 2026 04:01:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201269; x=1777806069; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zD1QHbTvqlDponwM5P/F4+a1PSB3+J8FyHG1ndeTEn0=; b=b3dSHFytDwdOWfbCv4RaZMOMETodx8N0wtEiNZTKH2BjTLHUSjZgqhjgPsGiJNoqxQ zCJPiKzaNvn0TgKBc8lnSXyGKR24KHHIleCQvOtQTGEUY8d3b4V27nkl9yAAZCJ8SwUn Q7pZcA8oHof3yq9fTE2OfoL0BMqpzK4/NnTgq7AivA+1R9B1HMdEKzfteSGEa70qpLS6 eSW7re+ZIfRXLpH/cv7WMoElDN66cX7MG1g3wcLMXEYYNa7JDGRCr6KRUB7cfR6EqWZS nGZcf+DRC3ZjmVXUDEJrvzkQQWvY82/0n/1pXgvAedueviiY/Y9/k/KjaQbvbhR8J9De ic8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201269; x=1777806069; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zD1QHbTvqlDponwM5P/F4+a1PSB3+J8FyHG1ndeTEn0=; b=Bi/AZKmJ5onaQSWHsEf5NibdtW3TQx6gsi5vhx0ix5lpG5w5flv4hbRlSL+WcercCw CurDzMEMkJfLYKenM4i1T4z6jTA3NsAPNYWEzwa9ZlvqSySD4lCZpH8jxfFxjQrh8jMG OZjjvUZElTxqTx4+XCPW+Y9nKzwTd7kjQQfheik34hfSfTz6fx7zB7TE9J55z8oLOpr/ ipZZo62awW9uUiDD9qGtezYfSNCWEFL1wPwQ/VawbAxWWM4ymTnh8KRzfjm+UtStyB6r aIno2QCuFdUNGUONk+4rLHP2xWA8xuvPBVkZZyd943ckhxQsPD8Dlc1Sb0+KCVjgsMhT maSw== X-Forwarded-Encrypted: i=1; AFNElJ820BaoZmGmV+Uqz+sdOPHMIbYb75zDj+3AhCUL3vbBtSlRcU7KqSlwoOv0Sskjq/SYJJor6w9ctF4t3/g=@vger.kernel.org X-Gm-Message-State: AOJu0YzlLlq+P5+G+FZ1z4ZZtUOVmBa4I7Bi3zugKb1INz2D79Zo23GK KUbM3EZ1dtstAGWgImrTYsRpLxGOwxChoS0jBecTesLCBwbXoKLVgvQm X-Gm-Gg: AeBDiet0TCubzdrr88NVX0cCHh1CJoo3MxuLMCDE1l5io72LwJIgt84HQmSYfz1Ma7c b1OD/SXjC38S9Gcy3bLDTMsovuVW7J7rE9y8F0GgOXZ+PTdafCcMbBUCKujO8aY69QQCtbohhoq 8Min9P/Pz4ZJPhBGgw5K4Ntk01VvmkMa7BS1TDBJ42dKbkABlCSxI9mWsYV8SvRLBAn9/jyHIG3 KsJtuZxT+QbpVAesGGdqQhrIom+ieOwUtU+v7aj9Iw89bsw6GcFXhjqVUdw54AqiTUuqYvp5Ojq rfuZiy6XDhjdSdpH140lGorbAqibOiCKcuhCGKQaDjFX7oJ03edLtDSqriHCaGSADrUID06G9zH K2EuLRm5N8G6B4wPFxJ6xaTKe3tKk/5FDx5QuuEGxwJ3Cyr8XK8Uy/azCBjkWZYssGKTrt5uvab lc1hH52W72KQ5kBTfsiDAw1NPONNf6DiXUCq/FeJK9ufyANZ3I4VSBeA+Kc7983L0+8V+SryLK0 ViCozUV77rK3UA= X-Received: by 2002:a17:903:2287:b0:2b2:be01:5532 with SMTP id d9443c01a7336-2b5f9fdbb6cmr369613895ad.35.1777201269202; Sun, 26 Apr 2026 04:01:09 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.04.00.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:01:08 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Cc: Link Mauve Subject: [PATCH V15 6/7] rust: Add PowerPC support Date: Sun, 26 Apr 2026 16:29:31 +0530 Message-ID: <20260426105932.2270364-7-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Link Mauve For now only Big Endian 32-bit PowerPC is supported, as that is the only hardware I have. This has been tested on the Nintendo Wii so far, but I plan on also using it on the GameCube, Wii U and Apple G4. These changes aren=E2=80=99t the only ones required to get the kernel to co= mpile and link on PowerPC, libcore will also have to be changed to not use integer division to format u64, u128 and core::time::Duration, otherwise __udivdi3() and __umoddi3() will have to be added. I have tested this change by replacing the three implementations with unimplemented!() and it linked just fine. Signed-off-by: Link Mauve Link: https://github.com/Rust-for-Linux/linux/issues/105 Link: https://github.com/linuxppc/issues/issues/451 Acked-by: Gary Guo Signed-off-by: Mukesh Kumar Chaurasiya (IBM) --- arch/powerpc/Kconfig | 1 + arch/powerpc/Makefile | 2 ++ rust/Makefile | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index e93df95b79e7..4ac897b650d4 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -285,6 +285,7 @@ config PPC select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RELIABLE_STACKTRACE select HAVE_RSEQ + select HAVE_RUST if PPC32 select HAVE_SAMPLE_FTRACE_DIRECT if HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if HAVE_DYNAMIC_FTRACE_WITH_DIRECT= _CALLS select HAVE_SETUP_PER_CPU_AREA if PPC64 diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index a58b1029592c..589613eaa5dc 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -61,6 +61,8 @@ else KBUILD_LDFLAGS_MODULE +=3D $(objtree)/arch/powerpc/lib/crtsavres.o endif =20 +KBUILD_RUSTFLAGS +=3D --target=3Dpowerpc-unknown-linux-gnu + ifdef CONFIG_CPU_LITTLE_ENDIAN KBUILD_CPPFLAGS +=3D -mlittle-endian KBUILD_LDFLAGS +=3D -EL diff --git a/rust/Makefile b/rust/Makefile index d70fb186cae9..54096ce8a675 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -400,13 +400,15 @@ bindgen_skip_c_flags :=3D -mno-fp-ret-in-387 -mprefer= red-stack-boundary=3D% \ -fstrict-flex-arrays=3D% -fmin-function-alignment=3D% \ -fzero-init-padding-bits=3D% -mno-fdpic \ -fdiagnostics-show-context -fdiagnostics-show-context=3D% \ - --param=3D% --param asan-% -fno-isolate-erroneous-paths-dereference + --param=3D% --param asan-% -fno-isolate-erroneous-paths-dereference \ + -ffixed-r2 -mmultiple -mno-readonly-in-sdata =20 # Derived from `scripts/Makefile.clang`. BINDGEN_TARGET_x86 :=3D x86_64-linux-gnu BINDGEN_TARGET_arm64 :=3D aarch64-linux-gnu BINDGEN_TARGET_arm :=3D arm-linux-gnueabi BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf +BINDGEN_TARGET_powerpc :=3D powerpc-linux-gnu BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) BINDGEN_TARGET :=3D $(BINDGEN_TARGET_$(SRCARCH)) =20 --=20 2.53.0 From nobody Fri Jun 12 15:29:56 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75DB726B75B for ; Sun, 26 Apr 2026 11:01:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201285; cv=none; b=j1gmMtYtdIKI4fhaXj5cg+ekEpBdiuTbAp1eCIOocjDC6B2yxx7VfnnzEFsN0Y9TUpr60nwqGZ9Uca8ZVEr978aE9AEDU13ssTYh3jdhvX8fhJU1pNS0H0f0VKKnmglk15+8YTTIzP9Ogd3NpTKUo1Xpjmk9GXzXPcQiORTu2lk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777201285; c=relaxed/simple; bh=i3RttQ1cYF3IxPlZI1nEf9BZfxoTrhwbrGi91/khSWI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=l4M8vvewsi6A8Yq2AksMXtJo0+MtmJAQr+3dCvehh0itVMvLMC6I6hf0+Y3wxmXKNNNz82qMGnJ9yGzFAxEG4NAzRiV2R9J6AC+WRJ5p+LJRX2ykV0doegnwbIHZB1RCb3rvh1d/Miw92vV5bu8zNcLu75N9U15R+3VpqxRUntE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cBE/kOuR; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cBE/kOuR" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-35d95017a68so6121218a91.3 for ; Sun, 26 Apr 2026 04:01:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777201283; x=1777806083; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nVCy+fRcM1H3k57gN4SHcc3eo5iNGuSvVrAbRBe/Co8=; b=cBE/kOuRHXAoEatTQOeeI/nUwjXqAC5nNFka/6cG4DkoM36J+tUMGvjkhbinDYpnHK DrBUrlUhEl8GdBqmjvbvjS73bF5oMmfFi9sDHZbD+CmDVToSFsAU61Xp6HblVde3pznB zzK6E9+2mqRQe2NqR/vt9gjxnNknTpg4tFL8o935o2OIxiTjlS4VVTomnSJ/lyDK8ycM bnizHkd7+/HDWYD1HNk0JiSBjxOn2gi7y8ApC6L7iY06krCaYyOhnU/KtSMmlHuEBRH6 23T4ShszFpAmMV+so7yt5/Uw3I5PTfZoCZAuCIq2VMVtr78xk6svXNQNItN6f6M3Y6Yf OHNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777201283; x=1777806083; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nVCy+fRcM1H3k57gN4SHcc3eo5iNGuSvVrAbRBe/Co8=; b=K8JzgDt6a4yoKTFQP9B3Gj7HD1Uru+qhrcQTRIXucu4cHQ27MmpstjIWJ60Id3HTO9 ii1KH65IyJ7928AEAqIgLvM53vD3UkoDSHcLAu5uedm0AweUKa4kPRWPhY0cyBrUiKDP mTuLGGJJY3BWhhJZsgsK9NoCfjRJ0Y9nrtJ2ODmDfRWDl2KcxJnXVqrqC5PfGrkGS+w9 /sMVrXqnasRyLn3VXL54VguT6T356bKGI2K6XYsmAj57oO+nT44581tpICwoXyPlMfVv Bp87lchU4EjGmVFhmeNHTw4ZQI68n1ZiLj1451QeFdsUSXIJcw06QpxNoK+bShO6veQr S6ew== X-Forwarded-Encrypted: i=1; AFNElJ8Hgoqx4ZYMTN3zZpzBJOsMEGO9e+CnlgFpJiojXdpR/zzxlp3xrVH0JL3nIRdbozDdsahoPFiGOPA5hlc=@vger.kernel.org X-Gm-Message-State: AOJu0YzVB3uEcJ2fbY34FJlCutQ0Nrg46gB1/+Nw3GLfBpl9k2NlI1QP pbsl/ypB0pH/DcGv6zPYk1+U1lkeapAP7P6ZzGqWgpuK6QGqvhu6faFV X-Gm-Gg: AeBDieu0Y6V/epAWnFZQfp6rBEsKRyG8m6LiCu/cmqJH5o/3efO0RFsxLPS2FELGuYW O2PPQTU4ZpB64FRj1yKr+kayXJ0Q0uAUUmwwcJksvC+A4tWtxGLwSzyxWSbhEe7rSphV4tTUTiH UXnp9Ea55kV+yw6OsSVRZGAzGkg7lwl0OxzeyNiGFS85nTaxfmTSfrOcGOzsbwGOJoFC/XLw+An JAiDcrHAz6fGYxNdBUOw/Ob6OiilE3T42IkxjYEHR6+2DETTehiE9XbqfLWkahFcV2n5yzeYWx7 C+sCOrEPJr/o+Witih2ydmqaIrVaGdrBmVSZVP1r21Q++jX9TmxoEUViYXfcog5mEkAjWKCIUDl 7DQH9HUnpQpXTcCAzJr/lRDeKYgEGJWbg/Bg0Sa4jTDFb/o0o7mCg6jkmwcfz8frUD/59+Pkazq qWDpPQBQAg7ocn+7a3oY8f5cr5i7tZN+rm0bLG1b0LrfMGSXM5yVXEwAZxF3bTVvDJVADXkBI07 KMdWmNL+15yPKw= X-Received: by 2002:a17:903:1ac6:b0:2b2:5840:808e with SMTP id d9443c01a7336-2b5f9ee9487mr384368245ad.10.1777201282662; Sun, 26 Apr 2026 04:01:22 -0700 (PDT) Received: from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com ([106.51.164.157]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa2f129sm256667235ad.29.2026.04.26.04.01.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:01:22 -0700 (PDT) From: "Mukesh Kumar Chaurasiya (IBM)" To: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org, nick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com, daniel.almeida@collabora.com, fujita.tomonori@gmail.com, viresh.kumar@linaro.org, prafulrai522@gmail.com, gregkh@linuxfoundation.org, arnd@arndb.de, tamird@kernel.org, mark.rutland@arm.com, mkchauras@gmail.com, lyude@redhat.com, lina+kernel@asahilina.net, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Cc: Link Mauve , Venkat Rao Bagalkote Subject: [PATCH V15 7/7] powerpc: Enable Rust for ppc64le Date: Sun, 26 Apr 2026 16:29:32 +0530 Message-ID: <20260426105932.2270364-8-mkchauras@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260426105932.2270364-1-mkchauras@gmail.com> References: <20260426105932.2270364-1-mkchauras@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Enabling rust support for ppc64le. Tested on pseries Power11: =E2=95=B0=E2=94=80=E2=9D=AF dmesg | grep rust [ 0.225728] Initialise system trusted keyrings [ 0.270961] rust_minimal: Rust minimal sample (init) [ 0.270968] rust_minimal: Am I built-in? true [ 0.270974] rust_minimal: test_parameter: 1 [ 0.270983] rust_misc_device: Initialising Rust Misc Device Sample [ 0.271012] rust_print: Rust printing macros sample (init) [ 0.271019] rust_print: Emergency message (level 0) without args [ 0.271023] rust_print: Alert message (level 1) without args [ 0.271026] rust_print: Critical message (level 2) without args [ 0.271030] rust_print: Error message (level 3) without args [ 0.271033] rust_print: Warning message (level 4) without args [ 0.271037] rust_print: Notice message (level 5) without args [ 0.271040] rust_print: Info message (level 6) without args [ 0.271043] rust_print: A line that is continued without args [ 0.271054] rust_print: Emergency message (level 0) with args [ 0.271064] rust_print: Alert message (level 1) with args [ 0.271072] rust_print: Critical message (level 2) with args [ 0.271077] rust_print: Error message (level 3) with args [ 0.271083] rust_print: Warning message (level 4) with args [ 0.271091] rust_print: Notice message (level 5) with args [ 0.271097] rust_print: Info message (level 6) with args [ 0.271102] rust_print: A line that is continued with args [ 0.271110] rust_print: 1 [ 0.271113] rust_print: "hello, world" [ 0.271121] rust_print: [samples/rust/rust_print_main.rs:35:5] c =3D "he= llo, world" [ 0.271129] rust_print: Arc says 42 [ 0.271130] rust_print: Arc says hello, world [ 0.271136] rust_print: "hello, world" [ 0.271198] usbcore: registered new interface driver rust_driver_usb [ 0.271207] rust_faux_driver: Initialising Rust Faux Device Sample [ 0.271227] faux_driver rust-faux-sample-device: Hello from faux device! [ 0.271297] rust_configfs: Rust configfs sample (init) Reviewed-by: Link Mauve Tested-by: Link Mauve Reviewed-by: Christophe Leroy (CS GROUP) Tested-by: Venkat Rao Bagalkote Link: https://github.com/Rust-for-Linux/linux/issues/105 Link: https://github.com/linuxppc/issues/issues/451 Acked-by: Gary Guo Signed-off-by: Mukesh Kumar Chaurasiya (IBM) --- arch/powerpc/Kconfig | 1 + arch/powerpc/Makefile | 7 ++++++- rust/Makefile | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 4ac897b650d4..2e3065bce9cd 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -286,6 +286,7 @@ config PPC select HAVE_RELIABLE_STACKTRACE select HAVE_RSEQ select HAVE_RUST if PPC32 + select HAVE_RUST if PPC64 && CPU_LITTLE_ENDIAN select HAVE_SAMPLE_FTRACE_DIRECT if HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if HAVE_DYNAMIC_FTRACE_WITH_DIRECT= _CALLS select HAVE_SETUP_PER_CPU_AREA if PPC64 diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 589613eaa5dc..9385db478c59 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -61,7 +61,12 @@ else KBUILD_LDFLAGS_MODULE +=3D $(objtree)/arch/powerpc/lib/crtsavres.o endif =20 -KBUILD_RUSTFLAGS +=3D --target=3Dpowerpc-unknown-linux-gnu +ifdef CONFIG_PPC64 +KBUILD_RUSTFLAGS +=3D --target=3Dpowerpc64le-unknown-linux-gnu +KBUILD_RUSTFLAGS +=3D -Ctarget-feature=3D-mma,-vsx,-hard-float,-altivec +else +KBUILD_RUSTFLAGS +=3D --target=3Dpowerpc-unknown-linux-gnu +endif =20 ifdef CONFIG_CPU_LITTLE_ENDIAN KBUILD_CPPFLAGS +=3D -mlittle-endian diff --git a/rust/Makefile b/rust/Makefile index 54096ce8a675..068b6fc3e0aa 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -408,7 +408,13 @@ BINDGEN_TARGET_x86 :=3D x86_64-linux-gnu BINDGEN_TARGET_arm64 :=3D aarch64-linux-gnu BINDGEN_TARGET_arm :=3D arm-linux-gnueabi BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf + +ifdef CONFIG_PPC64 +BINDGEN_TARGET_powerpc :=3D powerpc64le-linux-gnu +else BINDGEN_TARGET_powerpc :=3D powerpc-linux-gnu +endif + BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) BINDGEN_TARGET :=3D $(BINDGEN_TARGET_$(SRCARCH)) =20 --=20 2.53.0