[{"id":3673165,"web_url":"http://patchwork.ozlabs.org/comment/3673165/","msgid":"<DHJM52JEY7D3.MGKXTZB319ZL@garyguo.net>","date":"2026-04-03T15:09:04","subject":"Re: [PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta\n dependency core\" error","submitter":{"id":76823,"url":"http://patchwork.ozlabs.org/api/people/76823/","name":"Gary Guo","email":"gary@garyguo.net"},"content":"On Fri Apr 3, 2026 at 3:53 PM BST, Mukesh Kumar Chaurasiya (IBM) wrote:\n> When building Rust code with LLVM=1 with -j1, rustc was encountering\n> an error:\n> \"multiple candidates for `rmeta` dependency `core` found\", with two\n> candidates:\n> 1. The host's standard library from the rustup toolchain\n> 2. The kernel's custom libcore.rmeta in the rust/ directory\n>\n> This occurred because the build system was using `-L$(objtree)/rust`\n> for host library builds (proc_macro2, quote, syn), which caused rustc\n> to search the rust/ directory. During this search, rustc would find\n> both the kernel's custom libcore.rmeta and gain access to the host's\n> standard library, creating a conflict.\n>\n> The solution is to separate host libraries into a dedicated rust/host/\n> subdirectory and use `-L$(objtree)/rust/host` for host builds instead\n> of `-L$(objtree)/rust`. This ensures that:\n>\n> 1. Host library builds (proc_macro2, quote, syn) only search rust/host/\n>    and never encounter the kernel's libcore.rmeta\n> 2. Proc macro builds use `-L$(objtree)/rust/host` to find their\n>    dependencies\n> 3. Test builds use `-L$(objtree)/rust/test` for their dependencies\n> 4. Target builds continue to use `-L$(objtree)/rust` as before\n>\n> Special handling is added for rustdoc-pin_init, which is a host build\n> (to access the alloc crate) but depends on proc macros from the main\n> rust/ directory. It uses explicit `--extern` paths with absolute paths\n> to reference the proc macros without adding `-L$(objtree)/rust`, which\n> would reintroduce the conflict.\n>\n> The rust/host/ directory is added to clean-files to ensure it's removed\n> during `make clean`.\n>\n> Changes:\n> - Add clean-files := host/ to clean the generated directory\n> - Change host library targets from lib*.rlib to host/lib*.rlib\n> - Update cmd_rustc_procmacrolibrary to create host/ directory\n> - Update cmd_rustc_procmacro to use -L$(objtree)/rust/host\n> - Update cmd_rustdoc to use -L$(objtree)/rust/host for host builds\n> - Update cmd_rustc_test_library to use -L$(objtree)/rust/test\n> - Update rustdoc-pin_init to use explicit --extern paths for proc macros\n\nThis should go after the tags and ---, so it's not part of the commit message.\n\n>\n> Link: https://github.com/Rust-for-Linux/linux/issues/105\n> Link: https://github.com/linuxppc/issues/issues/451\n> Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>\n> ---\n>  rust/Makefile | 63 ++++++++++++++++++++++++++++++++-------------------\n>  1 file changed, 40 insertions(+), 23 deletions(-)\n>\n> diff --git a/rust/Makefile b/rust/Makefile\n> index 9801af2e1e02..762bddc868e4 100644\n> --- a/rust/Makefile\n> +++ b/rust/Makefile\n> @@ -3,6 +3,9 @@\n>  # Where to place rustdoc generated documentation\n>  rustdoc_output := $(objtree)/Documentation/output/rust/rustdoc\n>  \n> +# Clean generated host directory\n> +clean-files := host/\n> +\n>  obj-$(CONFIG_RUST) += core.o compiler_builtins.o ffi.o\n>  always-$(CONFIG_RUST) += exports_core_generated.h\n>  \n> @@ -27,7 +30,7 @@ endif\n>  \n>  obj-$(CONFIG_RUST) += exports.o\n>  \n> -always-$(CONFIG_RUST) += libproc_macro2.rlib libquote.rlib libsyn.rlib\n> +always-$(CONFIG_RUST) += host/libproc_macro2.rlib host/libquote.rlib host/libsyn.rlib\n>  \n>  always-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated.rs\n>  always-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated_kunit.c\n> @@ -150,7 +153,7 @@ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<\n>  \tOBJTREE=$(abspath $(objtree)) \\\n>  \t$(RUSTDOC) $(filter-out $(skip_flags) --remap-path-prefix=% --remap-path-scope=%, \\\n>  \t\t\t$(if $(rustdoc_host),$(rust_common_flags),$(rust_flags))) \\\n> -\t\t$(rustc_target_flags) -L$(objtree)/$(obj) \\\n> +\t\t$(rustc_target_flags) -L$(objtree)/$(obj)$(if $(rustdoc_host),/host) \\\n>  \t\t-Zunstable-options --generate-link-to-definition \\\n>  \t\t--output $(rustdoc_output) \\\n>  \t\t--crate-name $(subst rustdoc-,,$@) \\\n> @@ -193,13 +196,16 @@ rustdoc-proc_macro2: $(src)/proc-macro2/lib.rs rustdoc-clean FORCE\n>  \t+$(call if_changed,rustdoc)\n>  \n>  rustdoc-quote: private rustdoc_host = yes\n> -rustdoc-quote: private rustc_target_flags = $(quote-flags)\n> +rustdoc-quote: private rustc_target_flags = $(quote-flags) \\\n> +    --extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib)\n\nWhy not just add `-L$(objtree)/$(obj)/host`? If we go with the host directory\napproach we shouldn't need to explicitly specify the path?\n\nBest,\nGary\n\n>  rustdoc-quote: private skip_flags = $(quote-skip_flags)\n>  rustdoc-quote: $(src)/quote/lib.rs rustdoc-clean rustdoc-proc_macro2 FORCE\n>  \t+$(call if_changed,rustdoc)\n>  \n>  rustdoc-syn: private rustdoc_host = yes\n> -rustdoc-syn: private rustc_target_flags = $(syn-flags)\n> +rustdoc-syn: private rustc_target_flags = $(syn-flags) \\\n> +    --extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib) \\\n> +    --extern quote=$(abspath $(objtree)/$(obj)/host/libquote.rlib)\n>  rustdoc-syn: $(src)/syn/lib.rs rustdoc-clean rustdoc-quote FORCE\n>  \t+$(call if_changed,rustdoc)\n>  \n> @@ -236,7 +242,10 @@ rustdoc-pin_init_internal: $(src)/pin-init/internal/src/lib.rs \\\n>  \t+$(call if_changed,rustdoc)\n>  \n>  rustdoc-pin_init: private rustdoc_host = yes\n> -rustdoc-pin_init: private rustc_target_flags = $(pin_init-flags) \\\n> +rustdoc-pin_init: private rustc_target_flags = \\\n> +    --extern pin_init_internal=$(abspath $(objtree)/$(obj)/$(libpin_init_internal_name)) \\\n> +    --extern macros=$(abspath $(objtree)/$(obj)/$(libmacros_name)) \\\n> +    $(call cfgs-to-flags,$(pin_init-cfgs)) \\\n>      --extern alloc --cfg feature=\\\"alloc\\\"\n>  rustdoc-pin_init: $(src)/pin-init/src/lib.rs rustdoc-pin_init_internal \\\n>      rustdoc-macros FORCE\n> @@ -369,7 +378,9 @@ rusttest: rusttest-macros\n>  \n>  rusttest-macros: private rustc_target_flags = --extern proc_macro \\\n>      --extern macros --extern kernel --extern pin_init \\\n> -    --extern proc_macro2 --extern quote --extern syn\n> +    --extern proc_macro2=$(abspath $(objtree)/$(obj)/test/libproc_macro2.rlib) \\\n> +    --extern quote=$(abspath $(objtree)/$(obj)/test/libquote.rlib) \\\n> +    --extern syn=$(abspath $(objtree)/$(obj)/test/libsyn.rlib)\n>  rusttest-macros: private rustdoc_test_target_flags = --crate-type proc-macro\n>  rusttest-macros: $(src)/macros/lib.rs \\\n>      rusttestlib-macros rusttestlib-kernel rusttestlib-pin_init FORCE\n> @@ -525,48 +536,54 @@ $(obj)/exports_kernel_generated.h: $(obj)/kernel.o FORCE\n>  \n>  quiet_cmd_rustc_procmacrolibrary = $(RUSTC_OR_CLIPPY_QUIET) PL $@\n>        cmd_rustc_procmacrolibrary = \\\n> +\tmkdir -p $(dir $@); \\\n>  \t$(if $(skip_clippy),$(RUSTC),$(RUSTC_OR_CLIPPY)) \\\n>  \t\t$(filter-out $(skip_flags),$(rust_common_flags) $(rustc_target_flags)) \\\n>  \t\t--emit=dep-info=$(depfile) --emit=link=$@ --crate-type rlib -O \\\n> -\t\t--out-dir $(objtree)/$(obj) -L$(objtree)/$(obj) \\\n>  \t\t--crate-name $(patsubst lib%.rlib,%,$(notdir $@)) $<\n>  \n> -$(obj)/libproc_macro2.rlib: private skip_clippy = 1\n> -$(obj)/libproc_macro2.rlib: private rustc_target_flags = $(proc_macro2-flags)\n> -$(obj)/libproc_macro2.rlib: $(src)/proc-macro2/lib.rs FORCE\n> +$(obj)/host/libproc_macro2.rlib: private skip_clippy = 1\n> +$(obj)/host/libproc_macro2.rlib: private rustc_target_flags = $(proc_macro2-flags)\n> +$(obj)/host/libproc_macro2.rlib: $(src)/proc-macro2/lib.rs FORCE\n>  \t+$(call if_changed_dep,rustc_procmacrolibrary)\n>  \n> -$(obj)/libquote.rlib: private skip_clippy = 1\n> -$(obj)/libquote.rlib: private skip_flags = $(quote-skip_flags)\n> -$(obj)/libquote.rlib: private rustc_target_flags = $(quote-flags)\n> -$(obj)/libquote.rlib: $(src)/quote/lib.rs $(obj)/libproc_macro2.rlib FORCE\n> +$(obj)/host/libquote.rlib: private skip_clippy = 1\n> +$(obj)/host/libquote.rlib: private skip_flags = $(quote-skip_flags)\n> +$(obj)/host/libquote.rlib: private rustc_target_flags = $(quote-flags) \\\n> +\t--extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib)\n> +$(obj)/host/libquote.rlib: $(src)/quote/lib.rs $(obj)/host/libproc_macro2.rlib FORCE\n>  \t+$(call if_changed_dep,rustc_procmacrolibrary)\n>  \n> -$(obj)/libsyn.rlib: private skip_clippy = 1\n> -$(obj)/libsyn.rlib: private rustc_target_flags = $(syn-flags)\n> -$(obj)/libsyn.rlib: $(src)/syn/lib.rs $(obj)/libquote.rlib FORCE\n> +$(obj)/host/libsyn.rlib: private skip_clippy = 1\n> +$(obj)/host/libsyn.rlib: private rustc_target_flags = $(syn-flags) \\\n> +\t--extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib) \\\n> +\t--extern quote=$(abspath $(objtree)/$(obj)/host/libquote.rlib)\n> +$(obj)/host/libsyn.rlib: $(src)/syn/lib.rs $(obj)/host/libquote.rlib FORCE\n>  \t+$(call if_changed_dep,rustc_procmacrolibrary)\n>  \n>  quiet_cmd_rustc_procmacro = $(RUSTC_OR_CLIPPY_QUIET) P $@\n>        cmd_rustc_procmacro = \\\n> -\t$(RUSTC_OR_CLIPPY) $(rust_common_flags) $(rustc_target_flags) \\\n> +\t$(RUSTC_OR_CLIPPY) $(rust_common_flags) \\\n>  \t\t-Clinker-flavor=gcc -Clinker=$(HOSTCC) \\\n>  \t\t-Clink-args='$(call escsq,$(KBUILD_PROCMACROLDFLAGS))' \\\n>  \t\t--emit=dep-info=$(depfile) --emit=link=$@ --extern proc_macro \\\n> -\t\t--crate-type proc-macro -L$(objtree)/$(obj) \\\n> +\t\t--crate-type proc-macro \\\n> +\t\t-L$(objtree)/$(obj)/host \\\n>  \t\t--crate-name $(patsubst lib%.$(libmacros_extension),%,$(notdir $@)) \\\n> -\t\t@$(objtree)/include/generated/rustc_cfg $<\n> +\t\t@$(objtree)/include/generated/rustc_cfg \\\n> +\t\t$(rustc_target_flags) \\\n> +\t\t$<\n>  \n>  # Procedural macros can only be used with the `rustc` that compiled it.\n>  $(obj)/$(libmacros_name): private rustc_target_flags = \\\n>      --extern proc_macro2 --extern quote --extern syn\n> -$(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/libproc_macro2.rlib \\\n> -    $(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE\n> +$(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/host/libproc_macro2.rlib \\\n> +    $(obj)/host/libquote.rlib $(obj)/host/libsyn.rlib FORCE\n>  \t+$(call if_changed_dep,rustc_procmacro)\n>  \n>  $(obj)/$(libpin_init_internal_name): private rustc_target_flags = $(pin_init_internal-flags)\n>  $(obj)/$(libpin_init_internal_name): $(src)/pin-init/internal/src/lib.rs \\\n> -    $(obj)/libproc_macro2.rlib $(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE\n> +    $(obj)/host/libproc_macro2.rlib $(obj)/host/libquote.rlib $(obj)/host/libsyn.rlib FORCE\n>  \t+$(call if_changed_dep,rustc_procmacro)\n>  \n>  # `rustc` requires `-Zunstable-options` to use custom target specifications","headers":{"Return-Path":"\n <linuxppc-dev+bounces-19279-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=garyguo.net header.i=@garyguo.net header.a=rsa-sha256\n header.s=selector1 header.b=TLiBOlS/;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-19279-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=\"2a01:111:f403:c205::3\" arc.chain=microsoft.com","lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=garyguo.net","lists.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=garyguo.net header.i=@garyguo.net header.a=rsa-sha256\n header.s=selector1 header.b=TLiBOlS/;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=garyguo.net\n (client-ip=2a01:111:f403:c205::3;\n helo=lo2p265cu024.outbound.protection.outlook.com;\n envelope-from=gary@garyguo.net; receiver=lists.ozlabs.org)","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=garyguo.net;"],"Received":["from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnMZl3crPz1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 02:09:34 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fnMZj2w0Lz2yjm;\n\tSat, 04 Apr 2026 02:09:33 +1100 (AEDT)","from LO2P265CU024.outbound.protection.outlook.com\n (mail-uksouthazlp170110003.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c205::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange secp256r1 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4fnMZg1Ymhz2yWK\n\tfor <linuxppc-dev@lists.ozlabs.org>; Sat, 04 Apr 2026 02:09:30 +1100 (AEDT)","from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:488::16)\n by LO0P265MB3372.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:16c::12) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.18; Fri, 3 Apr\n 2026 15:09:05 +0000","from LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM\n ([fe80::1c3:ceba:21b4:9986]) by LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM\n ([fe80::1c3:ceba:21b4:9986%4]) with mapi id 15.20.9769.016; Fri, 3 Apr 2026\n 15:09:05 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1775228973;\n\tcv=pass;\n b=IiXd7vam5LVuz8KC1057cLBsbR+wYWlRB9BlkU8E2mqP+E4L2PkyvuiWhoeWRrIZb1SGP2+GK+wT9mkMA5YOtIGZThZCokbbGNfepW2csUadIGIzuaQeyarMAdZpEI5hxwcjNmAD2Pqujiz09MoSBtEUWcvC3YnyNuDvHYsAOS++4HJHPm82ihOOHtnMi/Dzqtv+YSn4AlRQ3/Z6qc9m90ecVZadGQysRzVyhDu6mv1Fw8YMsRVJ2gyuP3xr1kPZWYaqyY/jIvBoYZcVhssapSqx5XTkvHf9Sh9cbfuY1BkObZuUm1g0UwL5hZkBrH/6997SyaoKLl+OtPfRTDWrWw==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Nscwew6Z+L1y7JqLGQRL1Ni7IzVuX4ZLc0wEd9zOb4b7gXAy+LXEGjs0frZHY8Fxh0q54HWMCbXlAOYBGblM8/kc4H+Mngl71ptLVWBXHU8tkvx6yeQq2zuQqpbA20DFJFI7N3MIYHAVHIymdQCDQ1egM4mmiDiu1qP5CreQpRgWBjUl0jEs/z8Wnz9F39CvdBvctOLMIFx0ZjvlY6106XY9J5X+byzfprd9hvchM6rVZAceiNm98jdOg9SDiwcG90dU5j/AT0D6x04OgF+lig0AjKUfWQnjU/3HhI2xPgp4TgbV/waY/AA6Zwo0VwlzpSlqErlIR6741FWDnZQGzw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1775228973; c=relaxed/relaxed;\n\tbh=a46WExr9ySM8bW7s9P4MN5kQ8+0di83SI6nRfIjfWek=;\n\th=Content-Type:Date:Message-Id:Subject:From:To:References:\n\t In-Reply-To:MIME-Version;\n b=d1Yj5y3PB+SnvflS9oH2NUC0YnXVDqA6xufKKLX8TII22xR6fnIoT6FvBdW2u/vgK+ng79dsq3Q40AaP6LPigJQfyGxjW1FJ2CBidJv5CNncP3gpXkJlsZOIbBZ0REA8a72QrfqWcM1USgg5YFz34wpeqVRuavYmqyHyfTujk7AjfctIDmtUi++w7nP3HNNGChnnaueqq0EKebb9/jcoSszciQESe+OnA8uAS5Nfb9rRU7Ft+eaBYzvQ5/Z0LheNj8aKW4O9LfyQoLO6FKowLsB5qLZdyKYvayKhACFkOezuOqMHUbqtyBxZXd6JjSYUdH2dVKyYzXLM6RYEaxXvnw==","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=a46WExr9ySM8bW7s9P4MN5kQ8+0di83SI6nRfIjfWek=;\n b=Q6oOWJD7df+E0XIvz2P0d8fIehBS4roE5XmW6PpTf+y2soCsT7qOMdJpuBBxTu+2tGaYXB2sFG/ijTJqacJLVHLbm7eBIW5cO5Foz4mHY1Z7wX4ztSLvdUpdMOjTC/+63mvHlkIEmmNzEqxYMNAlYJKAv8MYHZks1A9REsyhA8j68QmraPPGCaCtZb/E36LyeVt6zewdi2B0ztL0zjOLJK6ZmD4hM5MS2vHh+ghRD5Dr3TBRada97gnU/mPCvRqrAJDOqviJ+FDjTOsXHgmqtZj+jmrvRlKenJ86lLu6oco4qXA2FfRMpUYfr1RGmCfvn2GLPgbaavkyUPZq+dcd6A=="],"ARC-Authentication-Results":["i=2; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=garyguo.net;\n dkim=pass (1024-bit key;\n unprotected) header.d=garyguo.net header.i=@garyguo.net header.a=rsa-sha256\n header.s=selector1 header.b=TLiBOlS/; dkim-atps=neutral;\n spf=pass (client-ip=2a01:111:f403:c205::3;\n helo=lo2p265cu024.outbound.protection.outlook.com;\n envelope-from=gary@garyguo.net;\n receiver=lists.ozlabs.org) smtp.mailfrom=garyguo.net","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net;\n dkim=pass header.d=garyguo.net; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=a46WExr9ySM8bW7s9P4MN5kQ8+0di83SI6nRfIjfWek=;\n b=TLiBOlS/gGcOBOKwD5i5cWg3fe9QqkW/5OPKTG/gnqrWrxPCjOSj45JBM+eBkbhPRL6EPKCEfHvGNToWDToMzBolbtY23AAuEVsS674tr2fVReUNygVejcTyU/7Q+ztkvQqvRG7ocQEEVrdiGOAfgvGz9ODJJ6Vbvf1qagqAlVY=","Content-Transfer-Encoding":"quoted-printable","Content-Type":"text/plain; charset=UTF-8","Date":"Fri, 03 Apr 2026 16:09:04 +0100","Message-Id":"<DHJM52JEY7D3.MGKXTZB319ZL@garyguo.net>","Subject":"Re: [PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta\n dependency core\" error","From":"\"Gary Guo\" <gary@garyguo.net>","To":"\"Mukesh Kumar Chaurasiya (IBM)\" <mkchauras@gmail.com>,\n <maddy@linux.ibm.com>, <mpe@ellerman.id.au>, <npiggin@gmail.com>,\n <chleroy@kernel.org>, <peterz@infradead.org>, <jpoimboe@kernel.org>,\n <jbaron@akamai.com>, <aliceryhl@google.com>, <rostedt@goodmis.org>,\n <ardb@kernel.org>, <ojeda@kernel.org>, <boqun@kernel.org>,\n <gary@garyguo.net>, <bjorn3_gh@protonmail.com>, <lossin@kernel.org>,\n <a.hindborg@kernel.org>, <tmgross@umich.edu>, <dakr@kernel.org>,\n <nathan@kernel.org>, <nick.desaulniers+lkml@gmail.com>, <morbo@google.com>,\n <justinstitt@google.com>, <linuxppc-dev@lists.ozlabs.org>,\n <linux-kernel@vger.kernel.org>, <rust-for-linux@vger.kernel.org>,\n <llvm@lists.linux.dev>","X-Mailer":"aerc 0.21.0","References":"<20260403145308.1042622-1-mkchauras@gmail.com>\n <20260403145308.1042622-2-mkchauras@gmail.com>","In-Reply-To":"<20260403145308.1042622-2-mkchauras@gmail.com>","X-ClientProxiedBy":"LO4P123CA0517.GBRP123.PROD.OUTLOOK.COM\n (2603:10a6:600:272::20) To LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM\n (2603:10a6:600:488::16)","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"LOVP265MB8871:EE_|LO0P265MB3372:EE_","X-MS-Office365-Filtering-Correlation-Id":"1cff182f-13e7-46c8-aef1-08de9192f254","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|10070799003|1800799024|376014|7416014|366016|921020|56012099003|22082099003|18002099003;","X-Microsoft-Antispam-Message-Info":"\n\t+uJPTShUwjCViiPzKuML9tE7xzFIRLdhR+lmIbnwp45EZKj3VbdaP6DDh+zStSqoPlIwI9boNqYzW80C84d/0BlluMcLVNbx5m7amV1lLrNbTjNn1g5O1sW8Pbb61s10hzG4Pxjn0VXPXd8WOOkTEGA/OlxI6XmQAzIISpuqSmqnxzwJzlAl5jFc0xb7cTLX5UgjpKhjyWf9jIQQrwxCUXFiOpBOaRc8Uf0DwG4sfXqMPjNptvTteUGVAhhq2fM07nU/vhot9WZyGbD5WHE0xd+YYzL2KY9M6A+7V2zzN/xLTvwFcjk+DmdfN7FWuFoCMXGOomXyvs0ljALSJzvIiOPAvVMQKQibtlslSR8B6ww7GDePStR7NHGgwcm6rmE4OCqAXW33ftzU5HJuN4/l/OlHZo8HjP6G/yoyxjD6JovPt6fCQIM/mP1SomEMr4yywGnc67+0N/ZL/6xQMUgH3um2SKeemV9jqY0p40UYLU7SPkLUFnxl7uwNJZgWe5gHImL0PeXj23/CJBGC0voCof0sUBusYWZgFjCzjBQrMPqQAiJ8KmiTofvfWkyWeuSHaaxbehejWDnUrGuw1xsawXxoJlNqqs03XOnBjEL0NB6fxN9+XlkRz/QrM7q0W6diiihkRB5dJePAo5riAc1BtVkBC+Ad4LJPIbqamKiTuEXVmXpi2h628jZkB1EkJAhMvLY1KVvttEwgogLMC38KXCvQegRJZi9paupgXxtC/1BYmrTre30wmep5oxZX4lXmTfiBY7QLypes/dpFuV3LJA==","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(376014)(7416014)(366016)(921020)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?nBMIn53KtJuM37/Q0la6dfgLj1Vj?=\n\t=?utf-8?q?gQpqA9os7xBdICFvTEMSKWt2b4xJQCJArIvoWWz2JGjaXomXPwq5YY5IqKPjTKTPt?=\n\t=?utf-8?q?eL47GxobbdAUPKh1/mCuXLK/MyKD2pcG5jVH4hYKBL/9YFgFkKGieEZ1cw7hvdDll?=\n\t=?utf-8?q?gbcEDFpi2EXv1pROw4YTl5p21AhVkBk6/qZVW9GtGODFQBaCyMfwGDqp7Uwpua9gc?=\n\t=?utf-8?q?DO0iszVvegbmmm9bqlqpJ2+/0YumNZEGpSfrb8taIdBTVwd68O6L3lYF39Qpw4DZt?=\n\t=?utf-8?q?UdAjt39PU1BHlgM2dNPdsfMlnD7+rdEod85q2uU7FhcnpFdK5a/9fgQnYzXCAHteU?=\n\t=?utf-8?q?0ynRpZDQCwy4//rHvyGvgzliUv8hmhUjV2qE9/+Kj9C2MfnBnfcz3b66MJcSxeMr1?=\n\t=?utf-8?q?2XQ2a+4cP7qH3G9ZlXpIC+Y7/p1X51MxneNGzHl3oUU1qsrqP8xcS2XV0OSD+szFE?=\n\t=?utf-8?q?YhQVROs2epVukWhgJ0bIDQEqBzAJq56LxDO9WThYxZy1M/SpMn8Ykasd67wA0mZmu?=\n\t=?utf-8?q?OHBliegcZO7uvma+43M93hXyKwX+CzYHVDJ0Fj5c0WiOwG3bpB9ckp1cpp37XzPrk?=\n\t=?utf-8?q?Xa0EQ8OXgrCwo299aBaz2WxqHfoRyCZLz4G/A/PAum6kLU1Gi8g7IOrxKo1PHJmYk?=\n\t=?utf-8?q?fr0SKyGGKzZYB1uZClAbbG41GSK/Ui2QnOSYrtv8yZsY+byXXSD/cpBTx60vMIBBY?=\n\t=?utf-8?q?ATRULHsoSsy/629R3Wk3IVZt4Ydn4qv3i1p00xSNU9Hi7G71AUrLzht/iF6RE0SSe?=\n\t=?utf-8?q?pIX880MmokXjs3qNsOOV+FZprPWxX9n6hhv7un9BoUu3VKQqjV8353yilUSW8q/+I?=\n\t=?utf-8?q?jgXwLqHhUAYmR40t4mmbwdj+GwMnNyaLvKL8DeRpQRjW7i/rHsGvKL1vlSA6QrSB9?=\n\t=?utf-8?q?kBlvCn2MxfDfrdo8ZRjgk1wLRwVig3MDZfIkd4FAV30HxUC1NGJfc8/jRjb0O+WeQ?=\n\t=?utf-8?q?YEyGF2h+/3cGSdGniEa2nIgICXxrEORZ61QnDRqtzK2bb1y+xlfeWhnReQ8kKT6l1?=\n\t=?utf-8?q?qsE0OVjyImQbH2QFx+Kxcfcx7acPvmDGEdEzmjULU1pGa+BWfC7C0zuMqkERl1MDa?=\n\t=?utf-8?q?kpppNrHgpAOft0EnJWibfGVmLNpcjG5T/XKsQZQh28aGAxK4cPLz/Xn/W3FO2ponL?=\n\t=?utf-8?q?2YOF8iYfVNJExsg2aFdHhpTfkIm4wndIiE6hK5n4hlPWo5NwORsDEe5f1L9BLUMK6?=\n\t=?utf-8?q?enE0idGX0cQg0kYZho7GS7WlbkcP6lNAUGve6NS8Is4hIdG887iSnmBOs4FzynG6W?=\n\t=?utf-8?q?Z7pGE43AXjpQUjYIJGXxvIz7Co30+8gKt97WkIf21I6SfB1cTpXDVQKDS0NqdHT1p?=\n\t=?utf-8?q?Jp7J/JAD/8kppaiiesgv9LIyvQkyP+ADQjXrvZYKbc3060SjgWfFeo1BGBy0+d6gz?=\n\t=?utf-8?q?PQjfPa2VRE+M8QcI1FfXGHByS3Oii8KqIKy+nTz/3H9fZpm/2yMfKgyiHmDSxNLcp?=\n\t=?utf-8?q?2JeslE2JwIzLb0tJozXIDdUQH1b7Cx5Nwa3PxROytkELOsJFQOPa3yNwImAODFrRy?=\n\t=?utf-8?q?72T0jSEyaBHizbjw9gzCfbYnN0/F2PSvwxclvXTsNtgecer3XfwUn5tSCe2PaX2Fk?=\n\t=?utf-8?q?zRmSZxjwuZzkZSR2gNzIRPw2Nn2/nHVriopYys2kB4X8uGT8t9Z3CLiQHcn2WYebJ?=\n\t=?utf-8?q?wp2NwvWtQRZ65A4ZeZvKRzinJJNiytbQ=3D=3D?=","X-OriginatorOrg":"garyguo.net","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 1cff182f-13e7-46c8-aef1-08de9192f254","X-MS-Exchange-CrossTenant-AuthSource":"LOVP265MB8871.GBRP265.PROD.OUTLOOK.COM","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"03 Apr 2026 15:09:05.1098\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"bbc898ad-b10f-4e10-8552-d9377b823d45","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n q3GLhBcMHJPS+xYR9Qedqj8o2GQw11zX7Q0eMjz7xug6+PlXW82viM219s4Il7VfxMQOtbTbjbAx31zIl05vqg==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"LO0P265MB3372","X-Spam-Status":"No, score=-0.2 required=3.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,\n\tSPF_HELO_PASS,SPF_PASS autolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}},{"id":3673375,"web_url":"http://patchwork.ozlabs.org/comment/3673375/","msgid":"<adCHe9rU_azp8svx@li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com>","date":"2026-04-04T03:39:13","subject":"Re: [PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta\n dependency core\" error","submitter":{"id":92575,"url":"http://patchwork.ozlabs.org/api/people/92575/","name":"Mukesh Kumar Chaurasiya (IBM)","email":"mkchauras@gmail.com"},"content":"On Fri, Apr 03, 2026 at 04:09:04PM +0100, Gary Guo wrote:\n> On Fri Apr 3, 2026 at 3:53 PM BST, Mukesh Kumar Chaurasiya (IBM) wrote:\n> > When building Rust code with LLVM=1 with -j1, rustc was encountering\n> > an error:\n> > \"multiple candidates for `rmeta` dependency `core` found\", with two\n> > candidates:\n> > 1. The host's standard library from the rustup toolchain\n> > 2. The kernel's custom libcore.rmeta in the rust/ directory\n> >\n> > This occurred because the build system was using `-L$(objtree)/rust`\n> > for host library builds (proc_macro2, quote, syn), which caused rustc\n> > to search the rust/ directory. During this search, rustc would find\n> > both the kernel's custom libcore.rmeta and gain access to the host's\n> > standard library, creating a conflict.\n> >\n> > The solution is to separate host libraries into a dedicated rust/host/\n> > subdirectory and use `-L$(objtree)/rust/host` for host builds instead\n> > of `-L$(objtree)/rust`. This ensures that:\n> >\n> > 1. Host library builds (proc_macro2, quote, syn) only search rust/host/\n> >    and never encounter the kernel's libcore.rmeta\n> > 2. Proc macro builds use `-L$(objtree)/rust/host` to find their\n> >    dependencies\n> > 3. Test builds use `-L$(objtree)/rust/test` for their dependencies\n> > 4. Target builds continue to use `-L$(objtree)/rust` as before\n> >\n> > Special handling is added for rustdoc-pin_init, which is a host build\n> > (to access the alloc crate) but depends on proc macros from the main\n> > rust/ directory. It uses explicit `--extern` paths with absolute paths\n> > to reference the proc macros without adding `-L$(objtree)/rust`, which\n> > would reintroduce the conflict.\n> >\n> > The rust/host/ directory is added to clean-files to ensure it's removed\n> > during `make clean`.\n> >\n> > Changes:\n> > - Add clean-files := host/ to clean the generated directory\n> > - Change host library targets from lib*.rlib to host/lib*.rlib\n> > - Update cmd_rustc_procmacrolibrary to create host/ directory\n> > - Update cmd_rustc_procmacro to use -L$(objtree)/rust/host\n> > - Update cmd_rustdoc to use -L$(objtree)/rust/host for host builds\n> > - Update cmd_rustc_test_library to use -L$(objtree)/rust/test\n> > - Update rustdoc-pin_init to use explicit --extern paths for proc macros\n> \n> This should go after the tags and ---, so it's not part of the commit message.\n> \nHey Gary,\n\nI was intending that to be a part of commit message. May be specifying\nthat as changes is confusing. I'll put it there as a summary.\n> >\n> > Link: https://github.com/Rust-for-Linux/linux/issues/105\n> > Link: https://github.com/linuxppc/issues/issues/451\n> > Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>\n> > ---\n> >  rust/Makefile | 63 ++++++++++++++++++++++++++++++++-------------------\n> >  1 file changed, 40 insertions(+), 23 deletions(-)\n> >\n> > diff --git a/rust/Makefile b/rust/Makefile\n> > index 9801af2e1e02..762bddc868e4 100644\n> > --- a/rust/Makefile\n> > +++ b/rust/Makefile\n> > @@ -3,6 +3,9 @@\n> >  # Where to place rustdoc generated documentation\n> >  rustdoc_output := $(objtree)/Documentation/output/rust/rustdoc\n> >  \n> > +# Clean generated host directory\n> > +clean-files := host/\n> > +\n> >  obj-$(CONFIG_RUST) += core.o compiler_builtins.o ffi.o\n> >  always-$(CONFIG_RUST) += exports_core_generated.h\n> >  \n> > @@ -27,7 +30,7 @@ endif\n> >  \n> >  obj-$(CONFIG_RUST) += exports.o\n> >  \n> > -always-$(CONFIG_RUST) += libproc_macro2.rlib libquote.rlib libsyn.rlib\n> > +always-$(CONFIG_RUST) += host/libproc_macro2.rlib host/libquote.rlib host/libsyn.rlib\n> >  \n> >  always-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated.rs\n> >  always-$(CONFIG_RUST_KERNEL_DOCTESTS) += doctests_kernel_generated_kunit.c\n> > @@ -150,7 +153,7 @@ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<\n> >  \tOBJTREE=$(abspath $(objtree)) \\\n> >  \t$(RUSTDOC) $(filter-out $(skip_flags) --remap-path-prefix=% --remap-path-scope=%, \\\n> >  \t\t\t$(if $(rustdoc_host),$(rust_common_flags),$(rust_flags))) \\\n> > -\t\t$(rustc_target_flags) -L$(objtree)/$(obj) \\\n> > +\t\t$(rustc_target_flags) -L$(objtree)/$(obj)$(if $(rustdoc_host),/host) \\\n> >  \t\t-Zunstable-options --generate-link-to-definition \\\n> >  \t\t--output $(rustdoc_output) \\\n> >  \t\t--crate-name $(subst rustdoc-,,$@) \\\n> > @@ -193,13 +196,16 @@ rustdoc-proc_macro2: $(src)/proc-macro2/lib.rs rustdoc-clean FORCE\n> >  \t+$(call if_changed,rustdoc)\n> >  \n> >  rustdoc-quote: private rustdoc_host = yes\n> > -rustdoc-quote: private rustc_target_flags = $(quote-flags)\n> > +rustdoc-quote: private rustc_target_flags = $(quote-flags) \\\n> > +    --extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib)\n> \n> Why not just add `-L$(objtree)/$(obj)/host`? If we go with the host directory\n> approach we shouldn't need to explicitly specify the path?\n> \n> Best,\n> Gary\n> \nYeah makes sense. Will send out new revision.\n\nRegards,\nMukesh\n> >  rustdoc-quote: private skip_flags = $(quote-skip_flags)\n> >  rustdoc-quote: $(src)/quote/lib.rs rustdoc-clean rustdoc-proc_macro2 FORCE\n> >  \t+$(call if_changed,rustdoc)\n> >  \n> >  rustdoc-syn: private rustdoc_host = yes\n> > -rustdoc-syn: private rustc_target_flags = $(syn-flags)\n> > +rustdoc-syn: private rustc_target_flags = $(syn-flags) \\\n> > +    --extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib) \\\n> > +    --extern quote=$(abspath $(objtree)/$(obj)/host/libquote.rlib)\n> >  rustdoc-syn: $(src)/syn/lib.rs rustdoc-clean rustdoc-quote FORCE\n> >  \t+$(call if_changed,rustdoc)\n> >  \n> > @@ -236,7 +242,10 @@ rustdoc-pin_init_internal: $(src)/pin-init/internal/src/lib.rs \\\n> >  \t+$(call if_changed,rustdoc)\n> >  \n> >  rustdoc-pin_init: private rustdoc_host = yes\n> > -rustdoc-pin_init: private rustc_target_flags = $(pin_init-flags) \\\n> > +rustdoc-pin_init: private rustc_target_flags = \\\n> > +    --extern pin_init_internal=$(abspath $(objtree)/$(obj)/$(libpin_init_internal_name)) \\\n> > +    --extern macros=$(abspath $(objtree)/$(obj)/$(libmacros_name)) \\\n> > +    $(call cfgs-to-flags,$(pin_init-cfgs)) \\\n> >      --extern alloc --cfg feature=\\\"alloc\\\"\n> >  rustdoc-pin_init: $(src)/pin-init/src/lib.rs rustdoc-pin_init_internal \\\n> >      rustdoc-macros FORCE\n> > @@ -369,7 +378,9 @@ rusttest: rusttest-macros\n> >  \n> >  rusttest-macros: private rustc_target_flags = --extern proc_macro \\\n> >      --extern macros --extern kernel --extern pin_init \\\n> > -    --extern proc_macro2 --extern quote --extern syn\n> > +    --extern proc_macro2=$(abspath $(objtree)/$(obj)/test/libproc_macro2.rlib) \\\n> > +    --extern quote=$(abspath $(objtree)/$(obj)/test/libquote.rlib) \\\n> > +    --extern syn=$(abspath $(objtree)/$(obj)/test/libsyn.rlib)\n> >  rusttest-macros: private rustdoc_test_target_flags = --crate-type proc-macro\n> >  rusttest-macros: $(src)/macros/lib.rs \\\n> >      rusttestlib-macros rusttestlib-kernel rusttestlib-pin_init FORCE\n> > @@ -525,48 +536,54 @@ $(obj)/exports_kernel_generated.h: $(obj)/kernel.o FORCE\n> >  \n> >  quiet_cmd_rustc_procmacrolibrary = $(RUSTC_OR_CLIPPY_QUIET) PL $@\n> >        cmd_rustc_procmacrolibrary = \\\n> > +\tmkdir -p $(dir $@); \\\n> >  \t$(if $(skip_clippy),$(RUSTC),$(RUSTC_OR_CLIPPY)) \\\n> >  \t\t$(filter-out $(skip_flags),$(rust_common_flags) $(rustc_target_flags)) \\\n> >  \t\t--emit=dep-info=$(depfile) --emit=link=$@ --crate-type rlib -O \\\n> > -\t\t--out-dir $(objtree)/$(obj) -L$(objtree)/$(obj) \\\n> >  \t\t--crate-name $(patsubst lib%.rlib,%,$(notdir $@)) $<\n> >  \n> > -$(obj)/libproc_macro2.rlib: private skip_clippy = 1\n> > -$(obj)/libproc_macro2.rlib: private rustc_target_flags = $(proc_macro2-flags)\n> > -$(obj)/libproc_macro2.rlib: $(src)/proc-macro2/lib.rs FORCE\n> > +$(obj)/host/libproc_macro2.rlib: private skip_clippy = 1\n> > +$(obj)/host/libproc_macro2.rlib: private rustc_target_flags = $(proc_macro2-flags)\n> > +$(obj)/host/libproc_macro2.rlib: $(src)/proc-macro2/lib.rs FORCE\n> >  \t+$(call if_changed_dep,rustc_procmacrolibrary)\n> >  \n> > -$(obj)/libquote.rlib: private skip_clippy = 1\n> > -$(obj)/libquote.rlib: private skip_flags = $(quote-skip_flags)\n> > -$(obj)/libquote.rlib: private rustc_target_flags = $(quote-flags)\n> > -$(obj)/libquote.rlib: $(src)/quote/lib.rs $(obj)/libproc_macro2.rlib FORCE\n> > +$(obj)/host/libquote.rlib: private skip_clippy = 1\n> > +$(obj)/host/libquote.rlib: private skip_flags = $(quote-skip_flags)\n> > +$(obj)/host/libquote.rlib: private rustc_target_flags = $(quote-flags) \\\n> > +\t--extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib)\n> > +$(obj)/host/libquote.rlib: $(src)/quote/lib.rs $(obj)/host/libproc_macro2.rlib FORCE\n> >  \t+$(call if_changed_dep,rustc_procmacrolibrary)\n> >  \n> > -$(obj)/libsyn.rlib: private skip_clippy = 1\n> > -$(obj)/libsyn.rlib: private rustc_target_flags = $(syn-flags)\n> > -$(obj)/libsyn.rlib: $(src)/syn/lib.rs $(obj)/libquote.rlib FORCE\n> > +$(obj)/host/libsyn.rlib: private skip_clippy = 1\n> > +$(obj)/host/libsyn.rlib: private rustc_target_flags = $(syn-flags) \\\n> > +\t--extern proc_macro2=$(abspath $(objtree)/$(obj)/host/libproc_macro2.rlib) \\\n> > +\t--extern quote=$(abspath $(objtree)/$(obj)/host/libquote.rlib)\n> > +$(obj)/host/libsyn.rlib: $(src)/syn/lib.rs $(obj)/host/libquote.rlib FORCE\n> >  \t+$(call if_changed_dep,rustc_procmacrolibrary)\n> >  \n> >  quiet_cmd_rustc_procmacro = $(RUSTC_OR_CLIPPY_QUIET) P $@\n> >        cmd_rustc_procmacro = \\\n> > -\t$(RUSTC_OR_CLIPPY) $(rust_common_flags) $(rustc_target_flags) \\\n> > +\t$(RUSTC_OR_CLIPPY) $(rust_common_flags) \\\n> >  \t\t-Clinker-flavor=gcc -Clinker=$(HOSTCC) \\\n> >  \t\t-Clink-args='$(call escsq,$(KBUILD_PROCMACROLDFLAGS))' \\\n> >  \t\t--emit=dep-info=$(depfile) --emit=link=$@ --extern proc_macro \\\n> > -\t\t--crate-type proc-macro -L$(objtree)/$(obj) \\\n> > +\t\t--crate-type proc-macro \\\n> > +\t\t-L$(objtree)/$(obj)/host \\\n> >  \t\t--crate-name $(patsubst lib%.$(libmacros_extension),%,$(notdir $@)) \\\n> > -\t\t@$(objtree)/include/generated/rustc_cfg $<\n> > +\t\t@$(objtree)/include/generated/rustc_cfg \\\n> > +\t\t$(rustc_target_flags) \\\n> > +\t\t$<\n> >  \n> >  # Procedural macros can only be used with the `rustc` that compiled it.\n> >  $(obj)/$(libmacros_name): private rustc_target_flags = \\\n> >      --extern proc_macro2 --extern quote --extern syn\n> > -$(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/libproc_macro2.rlib \\\n> > -    $(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE\n> > +$(obj)/$(libmacros_name): $(src)/macros/lib.rs $(obj)/host/libproc_macro2.rlib \\\n> > +    $(obj)/host/libquote.rlib $(obj)/host/libsyn.rlib FORCE\n> >  \t+$(call if_changed_dep,rustc_procmacro)\n> >  \n> >  $(obj)/$(libpin_init_internal_name): private rustc_target_flags = $(pin_init_internal-flags)\n> >  $(obj)/$(libpin_init_internal_name): $(src)/pin-init/internal/src/lib.rs \\\n> > -    $(obj)/libproc_macro2.rlib $(obj)/libquote.rlib $(obj)/libsyn.rlib FORCE\n> > +    $(obj)/host/libproc_macro2.rlib $(obj)/host/libquote.rlib $(obj)/host/libsyn.rlib FORCE\n> >  \t+$(call if_changed_dep,rustc_procmacro)\n> >  \n> >  # `rustc` requires `-Zunstable-options` to use custom target specifications\n>","headers":{"Return-Path":"\n <linuxppc-dev+bounces-19304-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=VyUeWqu5;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-19304-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=none smtp.remote-ip=\"2607:f8b0:4864:20::62c\"","lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=VyUeWqu5;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2607:f8b0:4864:20::62c; helo=mail-pl1-x62c.google.com;\n envelope-from=mkchauras@gmail.com; receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnhD43Ppcz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 14:39:31 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fnhD20qbfz2yYs;\n\tSat, 04 Apr 2026 14:39:30 +1100 (AEDT)","from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com\n [IPv6:2607:f8b0:4864:20::62c])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4fnhD05Y3hz2xQr\n\tfor <linuxppc-dev@lists.ozlabs.org>; Sat, 04 Apr 2026 14:39:27 +1100 (AEDT)","by mail-pl1-x62c.google.com with SMTP id\n d9443c01a7336-2b2429f98d0so15442965ad.2\n        for <linuxppc-dev@lists.ozlabs.org>;\n Fri, 03 Apr 2026 20:39:27 -0700 (PDT)","from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com\n ([106.51.160.44])\n        by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b27478945asm96269225ad.28.2026.04.03.20.39.16\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Fri, 03 Apr 2026 20:39:24 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1775273969;\n\tcv=none;\n b=NluCndiqVhTSi41o6X4SgkBFazhDPYz1qcBWknOhEfWmKwOYrWtO6FVVaiKwFKN18zOTlWYZqSjboZ50rjTuLG6W0q7Ufm5nkT0LcGsaXC6z54SOngrQAgt8pwY0XJ5QXNYUtzry3sy7kNU4HVSo9H264X85bBCFU4EOhRT/PB1WSpV5FedFnWzBI9sDfUzkW/PxkxIiA3RGIfd5LmvXUGmG6qMG9JGasF+3xIJUeqXgh2gqnkrG3B0JnoyfUj/wX+C8HcGLNoMwS1znfmMY2RoDYZ7PLP0kDL7GZjitS5O0b7L+sGIWXhTA7eOhPl5FjpZbRPfra37qiNg8ieuJZw==","ARC-Message-Signature":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1775273969; c=relaxed/relaxed;\n\tbh=p/mS68jPp5o6fDVjVxwaQqVlnV+4rvaGWH9gRtfYcJE=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=ebIcj7uBeCEnJXeZJIdzvCjNnl2e5KrAZpWb74P4jQ5BP0nDL84FdGh1nvwUpcDTBatv8KsD6GefVr1K8++55X3jc+5Foy98a8KpcxuGBi7RS7RjoyGuKuzYNc68xvyTZGwxN0+KhEXtNZGDJx5Y9OTU4arSThJv5OU3zlM2i4MeYg8nn6tcsmVjYEx+e3xxAgyG/AhDiqqI6tMJDEdFuDHJwM1pq3Hyy9cVXazbDNKC4YT0pm/rXH6SQ+EakOmFsvE+2HJW/0Nb3V/uwR/vpUfbco4wkMC0nM95pBsZfksIco7/2/+9mX94Z6Ta5HHiybOqzWG/rouZLc1ccJ9rhA==","ARC-Authentication-Results":"i=1; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=VyUeWqu5; dkim-atps=neutral;\n spf=pass (client-ip=2607:f8b0:4864:20::62c; helo=mail-pl1-x62c.google.com;\n envelope-from=mkchauras@gmail.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=gmail.com","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1775273965; x=1775878765;\n darn=lists.ozlabs.org;\n        h=in-reply-to:content-disposition:mime-version:references:message-id\n         :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to;\n        bh=p/mS68jPp5o6fDVjVxwaQqVlnV+4rvaGWH9gRtfYcJE=;\n        b=VyUeWqu5RzbL2CY4APQ/stFWJCvVTaRRvLuMaNp0GVd5dipiKNrwiy3BT50tlia1Ji\n         lkjk35QINau+t4BQALdjRISPuLT0iJFn/884k2W23qopndG0uE8NxTr/E+qCNMco3h/V\n         N8aLtKcif1Fwq61Kh1rh+NQ+TxJbe1uaNbSpw8mXN0P5OQNXvEHOmpthg2a8sMSSE8t4\n         gVUOxd3PTH/p+pUdFoxJYC1ufX4XmQ3KSQAesacGxb2bb+SBLfET3JqMLp/GBhzWLZlp\n         vZI8qyW3J78SbqSDPsJjZHy1KfJVeveNevS3jEVWpgDgCC+2Y/u7N3M6zE7+lvyK/8YC\n         nokg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775273965; x=1775878765;\n        h=in-reply-to:content-disposition:mime-version:references:message-id\n         :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc\n         :subject:date:message-id:reply-to;\n        bh=p/mS68jPp5o6fDVjVxwaQqVlnV+4rvaGWH9gRtfYcJE=;\n        b=C5SufYo8I8IFae6+S8tDx08MVDEFArrY/mzxF5FzyeX16Go9NrnziV2L3PA29H245q\n         MR1JB5piOUDUQL39GdQRpnzpBEN4uT6xnY57NCL9eKFInoqKo3/xkiPddlz2eoloHzUZ\n         bLIPlawVlLfk5QU3BMp4sj0pIfYNzuDf6dz8TG2VvkapN6DfEY6BGUBvwWHxwiVqyZik\n         CpudyFE8Sncjwe/tI21EhdQdFGvoMkYVkw7cBherGoRBeW93vCqiBF9WmMBkTL6vi58N\n         s46ff+sg4AxJRXT/+TqR+ekliP+QpsEM9GSMKsmo9eAunLNAGJEuAYSAnmZ4ClpodQtr\n         imwA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUbUXnC8NuZV3xckebT043QfHtfWUPeVNqmR0xgn0q6gOWE16jKwHVFcMox25YDKbJ2NlZaTMfFNZaungQ=@lists.ozlabs.org","X-Gm-Message-State":"AOJu0Yx1XO1agPsWvLZER9J4mOFE35TCvO56iu0ng4R1qiujx048yJQo\n\tR85ukl0zCV14wHZhwwI6LoHxJ7tEQLZ2ypfVg4XXSI51DfD2xADFxvAV","X-Gm-Gg":"AeBDievdpIyk1YvoeTpDKpKAVVtxvYftOywk7dEH114JB66taMr3peqhQIOT73maCr1\n\t2+3Ugq77960WRyeydm+9Gc3hxyB7fnJ53QyvVZzh7zAoSTN+JH7vFC5osxHskyrJTeVJygGFGvk\n\tiGhJO4T4Q6DQqzde6EfdiBBMC2dISDSOwtvU/IyxK7PKzsvcncIV0lHcOqIfLVOoUlzwby/nUbe\n\tW/5G3/Mi/6rdDHFvGCjf2oJJNoAAwqQqS1XmN0nC+Pb+R07s4C95J2LjoDVSr+jwD8LZj+Dim5o\n\t2QOUMaM1hvszjuU4ExDvP2HHn3LsXy6/+afqOkQV/WCQzV3bCkSmID8iE9uT+W89ubg6ISOFeAd\n\tUr2P/bfq02h+fzq56qP3H1NGjEtkTSz50XUM8/xiCYgYJGN6H02zVZmYVCCEdJZ/GEG/YRyAV6E\n\t5hZ+RMVTtc9B2gTShc608fNczXfS/DSRU1zWKLBjYD8tUmOTCHZ+ewo/pMbKQvcOJpmQzvLQ==","X-Received":"by 2002:a17:902:f603:b0:2b0:9a61:9e9 with SMTP id\n d9443c01a7336-2b281769197mr58132275ad.32.1775273965093;\n        Fri, 03 Apr 2026 20:39:25 -0700 (PDT)","Date":"Sat, 4 Apr 2026 09:09:13 +0530","From":"Mukesh Kumar Chaurasiya <mkchauras@gmail.com>","To":"Gary Guo <gary@garyguo.net>","Cc":"maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com,\n\tchleroy@kernel.org, peterz@infradead.org, jpoimboe@kernel.org,\n jbaron@akamai.com,\n\taliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org,\n\tboqun@kernel.org, bjorn3_gh@protonmail.com, lossin@kernel.org,\n\ta.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, nathan@kernel.org,\n\tnick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com,\n\tlinuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,\n rust-for-linux@vger.kernel.org,\n\tllvm@lists.linux.dev","Subject":"Re: [PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta\n dependency core\" error","Message-ID":"<adCHe9rU_azp8svx@li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com>","References":"<20260403145308.1042622-1-mkchauras@gmail.com>\n <20260403145308.1042622-2-mkchauras@gmail.com>\n <DHJM52JEY7D3.MGKXTZB319ZL@garyguo.net>","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<DHJM52JEY7D3.MGKXTZB319ZL@garyguo.net>","X-Spam-Status":"No, score=-0.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID,\n\tDKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,\n\tSPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}},{"id":3673505,"web_url":"http://patchwork.ozlabs.org/comment/3673505/","msgid":"<CANiq72=chqViRu08TxDBA9k3fpL6vAVzvBnTrkfY7jM=FD1afA@mail.gmail.com>","date":"2026-04-04T20:28:34","subject":"Re: [PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta\n dependency core\" error","submitter":{"id":73498,"url":"http://patchwork.ozlabs.org/api/people/73498/","name":"Miguel Ojeda","email":"miguel.ojeda.sandonis@gmail.com"},"content":"On Sat, Apr 4, 2026 at 5:39 AM Mukesh Kumar Chaurasiya\n<mkchauras@gmail.com> wrote:\n>\n> Yeah makes sense. Will send out new revision.\n\nIn addition to what Gary said, I am not sure if you will need to use\n`abspath` anymore in the new one, but in any case, if you do, please\nclarify if/why it wouldn't work without an absolute one.\n\nThanks!\n\nCheers,\nMiguel","headers":{"Return-Path":"\n <linuxppc-dev+bounces-19324-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=j+ktAkOK;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-19324-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=\"2607:f8b0:4864:20::1334\" arc.chain=google.com","lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=j+ktAkOK;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2607:f8b0:4864:20::1334; helo=mail-dy1-x1334.google.com;\n envelope-from=miguel.ojeda.sandonis@gmail.com; receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fp6cq6bchz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 05 Apr 2026 06:28:59 +1000 (AEST)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fp6ch5816z2yC9;\n\tSun, 05 Apr 2026 06:28:52 +1000 (AEST)","from mail-dy1-x1334.google.com (mail-dy1-x1334.google.com\n [IPv6:2607:f8b0:4864:20::1334])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4fp6cf4px0z2xQD\n\tfor <linuxppc-dev@lists.ozlabs.org>; Sun, 05 Apr 2026 06:28:49 +1000 (AEST)","by mail-dy1-x1334.google.com with SMTP id\n 5a478bee46e88-2cb19ddda43so223649eec.3\n        for <linuxppc-dev@lists.ozlabs.org>;\n Sat, 04 Apr 2026 13:28:49 -0700 (PDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1775334532;\n\tcv=pass;\n b=cVhNXk1rAZTgwgUHC1FB/Lz57RCeGoNwdHp0IoihwKYFyCfFK27ygnRLM/k5W1D+OwSkiTcIPJdJ4LxyZxDdEJlE7ZM7+KvUubCXUVj0rarA4b8oRUSwrQH47WLXBTVQiczMYAWudSbjb3grxVW1VsJtrEiYeDm8hzdZqy4htjMD9l/DEY+b6nNyxlup0UabIn4qACznqAXdn3/+JNnxmZmm1tSq9byPf6ZSICNVkhnn6qN/mVooikUhOr3s4lBaL/m7zFd0kMPxJ/9q1ytbVcYWIgcp38i1pEhEIFkyfo5FBZN8rTaP5D6cEu0eT+tcBabA9MhuYBUpg69tSGlxxw==","i=1; a=rsa-sha256; t=1775334527; cv=none;\n        d=google.com; s=arc-20240605;\n        b=cqEMzLzN1KcJnGWXI6cK9px8jG0qA4moRllH0HHnFD84a7cd5JkoHeK1svMueKiipI\n         pAGo5rVvaAYfUZKblVExMCu8IkM8R+DcBReN/0pIc8O7SIbB5xNPIQ0+onpM4CpqneCR\n         +BShw9yd63hkYsNI2MhZs3OS53i52vY1LBJ1WBmFluNXZrNhzKzfQxdb+DkdBCxvTHZL\n         muedoVxpO5/M7/+xg8Nqs3TaJ3xQ78QgNeTgeRhNF4q53uk3z7gGWcRI9yi7nxR+xigJ\n         tVjIgkH8SU7QFatPNgBfcnkVZ73y4Z+WC3DZKWSkyrjCAZkAlsGa/jHLqtD6KCZtSWzk\n         0E2A=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1775334532; c=relaxed/relaxed;\n\tbh=fuYkWQmMSCPcosnkt/+bxaLXK1ECUYr+DyPSImbwjCw=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=U6rFU77bTKHnUii3R9KX2SlTWQQTv3mukwkH+CnLbpx5kRS3aDfN40ITN5/wm1MvkefpuMfx3Ni3CqwBOvIlqvOHyPukzKYG/7huYOdutm+emcUT678cVe+xy8RciGg49a5HBbqezaIJBPS9dJT+hRFMkYFqS9M/GszDaNMYV0c/EKW2n59LCLiA6qXVw2MJ4Tv/CYIyzO8WZjiiTCg6XEdFUPEgtWOXuKS1grtfXeeVZ3NdJ1ckzrlKk1M9jq0Xrp87fjmUgfBUh5shqe/dSDbKYHKAoV2Q7qpNCLyFX7woPDbHYQLreK47OMZ4AeIbJJkyEdPNeKaOxf2oOk3YsA==","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:dkim-signature;\n        bh=fuYkWQmMSCPcosnkt/+bxaLXK1ECUYr+DyPSImbwjCw=;\n        fh=Mxs+sJtaDPuAM2glOD/G/U4CkYvO6nNw3raN7YC0cvc=;\n        b=YlHZnhYXW0ZLzEHBdP1RNpINQ/U0Z25536Fh/1yxWGE0Qi9QVNbV1QhlVj4APe0Q4S\n         UfU2WEvf6NkWQvWXoPb9yX51NR+dkeKkXm6ypT4prrfuES627LDqsjI8Rj8ChTnC+eqa\n         7dmzGQgvuZ6a7mZaxQn91tUx833Bk3ceH/rZTnYA3kNjDffbOGlMOgzNx8z6lW3vdVMY\n         BSZ8YO/TXlFZimbbl3fjs2q4ntls5vOKKzAzVWM3tcbdYyDJTibQj9qkx6Q2JxWHoIqz\n         g5ObRvbj1sZ/u33fPrW6Q105r4VCdhAIQ8lxIub1ywSESh1u5Yhdbq10DY5qWWZ1QFNS\n         T6/g==;\n        darn=lists.ozlabs.org"],"ARC-Authentication-Results":["i=2; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=j+ktAkOK; dkim-atps=neutral;\n spf=pass (client-ip=2607:f8b0:4864:20::1334; helo=mail-dy1-x1334.google.com;\n envelope-from=miguel.ojeda.sandonis@gmail.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=gmail.com","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1775334527; x=1775939327;\n darn=lists.ozlabs.org;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=fuYkWQmMSCPcosnkt/+bxaLXK1ECUYr+DyPSImbwjCw=;\n        b=j+ktAkOKUkkZZ4T/pJT1p2FBKmwDZ55o2hQYQZqRA/0aWlGY7RST/nfe534N3cZpNv\n         RkFi1HLvpiUbsIy37MrhHy0rr8JiYn3K7EAFhI5DjOZDXyQf797yKCfbdEXoMzhisYli\n         TDnFpNKKHJXJK2326XQkAc7bMOS12qfaX0wDh7WaocJ6PPV6GsgaO3dOneiX7o28Cyuh\n         t/MMK9DO8WCQOetr+sgZksBSQKBX4MdAjSJYbRFkA0czVP7iBJCXmv9ulfiiIczO4zlA\n         vOa+SVT2acxkirXeUjOR5RSxC0LADq+loZLjHR1IFS9gieumz6eDGuCYBTd4tpvRex1b\n         2Rtg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775334527; x=1775939327;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=fuYkWQmMSCPcosnkt/+bxaLXK1ECUYr+DyPSImbwjCw=;\n        b=ijjPFzi0e0YIPOQ/JV7efD7YaQCAsXV+q4xzMnwyzITpFX9a7YCZovZ2DmthyNQ0Oa\n         cbITnBZKiOmBGji29zPXEnyT3kl64+gQAEmoKb31F9EgJlFKyh5ssh/OUtIDRd181kS9\n         kxHxoLJwB0l1FuOKb4HFugKjNiIgn9bF3j/fIZfOwbWwJ9/WvGS6oh6Bil0FMEhxwunZ\n         KF2kXxo1DtynIAXqAkKyHCa8CMeiuy+1o4wnWDc5d12uhHXjvddRCDBeO9AxWmO92Zq2\n         MaujmjATNWdKBhUCo3o0kdf2HhH3R94DefhOACJEHrzTfWuw/ygKO0SSceLDd+L4vETv\n         R/JQ==","X-Forwarded-Encrypted":"i=1;\n AJvYcCU0dTk/+VFiHXqh7y+ojhB6CIM32A7rXE5BQ37/rDbZ0P5lGp6pH1P8XlXwSz6AfvqIIWw5GNApaDIWMHU=@lists.ozlabs.org","X-Gm-Message-State":"AOJu0YzoQciRiKriSx6MpBnSJYP/VeqCTal6UjGwi9th5rOMbK8u+fFv\n\tM6Wt728OoS/L/ROh+v63KJSwe4aQlc/OpE9f0YDTcFfZ9E9FAszF5+jPjwFA0ZCXRox93LlPcIS\n\tHJI+el7qIAabKoyL2L3QYLJSL0v4+ts0=","X-Gm-Gg":"AeBDies4wMfzukLFv1o51xOkCDjT9RCcSSUAxhrWNVP6EPjsrhJRIeKil7XELcvaB+N\n\tUyPxsWwg39y5h/Jljaze4NezeJ1rbLnX21x7/IlPiQPM66CYSb2irYCzGsGYaSzlAhs/za4rINr\n\tOqlqmQfx9aIwFwGySMjQvNldMi42mRSW/akZ0fJNEISSKZIaj6h5JLZmhJeHNcWE3+stfu80CUV\n\tCX+crPRnbVGXFKPSHq54RJwEaaAqN6qTCkXfbZ6ddIRsqDhMhYnXPjnEvUOZWykrW9klIggqokj\n\tIkP+soGYL0kBA0nbKFjXYf0K1whikmjklBvb7hlL5ahe2k91d813r5Kbu81y1ZD9uJDkMS/lNtC\n\tffjdBZjt4Tew7zuRRV08gt5TWaFdrFNDjmg==","X-Received":"by 2002:a05:7301:129a:b0:2c1:7ca:cec2 with SMTP id\n 5a478bee46e88-2cbfce5068dmr1382909eec.8.1775334526875; Sat, 04 Apr 2026\n 13:28:46 -0700 (PDT)","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","References":"<20260403145308.1042622-1-mkchauras@gmail.com>\n <20260403145308.1042622-2-mkchauras@gmail.com>\n <DHJM52JEY7D3.MGKXTZB319ZL@garyguo.net>\n <adCHe9rU_azp8svx@li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com>","In-Reply-To":"\n <adCHe9rU_azp8svx@li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com>","From":"Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>","Date":"Sat, 4 Apr 2026 22:28:34 +0200","X-Gm-Features":"AQROBzCykZ4QROsJXifMoD7BMVI05gD2ToHAxvSrZBE2nSQXFDkyMtGKnsPYJAc","Message-ID":"\n <CANiq72=chqViRu08TxDBA9k3fpL6vAVzvBnTrkfY7jM=FD1afA@mail.gmail.com>","Subject":"Re: [PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta\n dependency core\" error","To":"Mukesh Kumar Chaurasiya <mkchauras@gmail.com>","Cc":"Gary Guo <gary@garyguo.net>, maddy@linux.ibm.com, mpe@ellerman.id.au,\n\tnpiggin@gmail.com, chleroy@kernel.org, peterz@infradead.org,\n\tjpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com,\n\trostedt@goodmis.org, ardb@kernel.org, ojeda@kernel.org, boqun@kernel.org,\n\tbjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org,\n\ttmgross@umich.edu, dakr@kernel.org, nathan@kernel.org,\n\tnick.desaulniers+lkml@gmail.com, morbo@google.com, justinstitt@google.com,\n\tlinuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,\n\trust-for-linux@vger.kernel.org, llvm@lists.linux.dev","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Spam-Status":"No, score=-0.2 required=3.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,\n\tRCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}}]