Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2219606/?format=api
{ "id": 2219606, "url": "http://patchwork.ozlabs.org/api/patches/2219606/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260403145308.1042622-2-mkchauras@gmail.com/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api", "name": "Linux PPC development", "link_name": "linuxppc-dev", "list_id": "linuxppc-dev.lists.ozlabs.org", "list_email": "linuxppc-dev@lists.ozlabs.org", "web_url": "https://github.com/linuxppc/wiki/wiki", "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git", "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/", "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/", "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}" }, "msgid": "<20260403145308.1042622-2-mkchauras@gmail.com>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20260403145308.1042622-2-mkchauras@gmail.com/", "date": "2026-04-03T14:53:05", "name": "[V8,1/4] rust: Fix \"multiple candidates for rmeta dependency core\" error", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "97da84dd1300beebb96196a77bf8897217af281c", "submitter": { "id": 92575, "url": "http://patchwork.ozlabs.org/api/people/92575/?format=api", "name": "Mukesh Kumar Chaurasiya (IBM)", "email": "mkchauras@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260403145308.1042622-2-mkchauras@gmail.com/mbox/", "series": [ { "id": 498640, "url": "http://patchwork.ozlabs.org/api/series/498640/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=498640", "date": "2026-04-03T14:53:04", "name": "Rust support for powerpc", "version": 8, "mbox": "http://patchwork.ozlabs.org/series/498640/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2219606/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2219606/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linuxppc-dev+bounces-19274-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=On9lPSMr;\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-19274-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::42e\"", "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=On9lPSMr;\n\tdkim-atps=neutral", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2607:f8b0:4864:20::42e; helo=mail-pf1-x42e.google.com;\n envelope-from=mkchauras@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 4fnMDJ28Fxz1yDH\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 01:53:36 +1100 (AEDT)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fnMDJ0g16z2ynZ;\n\tSat, 04 Apr 2026 01:53:36 +1100 (AEDT)", "from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com\n [IPv6:2607:f8b0:4864:20::42e])\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 4fnMDG6L40z2yWK\n\tfor <linuxppc-dev@lists.ozlabs.org>; Sat, 04 Apr 2026 01:53:34 +1100 (AEDT)", "by mail-pf1-x42e.google.com with SMTP id\n d2e1a72fcca58-82cebbdbdccso1004382b3a.1\n for <linuxppc-dev@lists.ozlabs.org>;\n Fri, 03 Apr 2026 07:53:34 -0700 (PDT)", "from li-1a3e774c-28e4-11b2-a85c-acc9f2883e29.ibm.com.com\n ([106.51.160.44])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82cf9ca4efesm6301682b3a.61.2026.04.03.07.53.23\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 03 Apr 2026 07:53:32 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1775228015;\n\tcv=none;\n b=kbvrT0UztvOlGYmD0sJlGqG9EAw3f4uTGroLVuEvuUInbdTTI7roBhv1UYoWail4FfqgafKrMtxDf/gLmJUYTU0aAN2zNduDz9qw+hC9oFG8lkgG0tkb5PbRMr2XlVyM4m6zeRQ+TcL502AIybmlqslupYHIZJlxd70JXPp7aISbHdv3SussIGUUlSzeWZwm7Pi8cSX9nCoOyGgKqfSRrBuQId+nEnzbuhF1V/PuKYnoAU/Ih7U/YoQT7L/X3uUuM1ckxmSdbOknNUsDhHtNSivv4ZCiaOc+zTZi+wVevERA4tNogD20rdyR9X8ldbEskWkAqfqUm3ZyhP13tPAxSQ==", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1775228015; c=relaxed/relaxed;\n\tbh=fUTSB1GcQ+ZgkTavCnlkXCyNO/5I/d2MoyKGgMKrfsE=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=nx/y9i3MD5Z8tif0TC4yl1wOSjq95pVh5mLtO/hv+A+MX5BH7ZxG1p/AaDoTix6q7fHKwzgPvMokboMH7zckZpvgeJZHChIaV/ZmU6/asejfIqXBeBrwYvj9705EEvzj26NfLawh90+9vu3royYlJVFOXUnEvlElw4WC+ewCzV5jTb1Y0mpkhgjHAQHW/q2tXiiGGgDJiSlt/61eS75GX7FAKZ05fe8vQOuJX/EQ4RJ95ZyWMa8kfcLo/CvqF3r0pl7nNAdRlgGGMTCVtXxNRh0LssG8tr1Ld8o7rW1OuN+tscHha74/kOInl8zmGJ8/ZqwLbZXJ44EtmWUVAfPzJw==", "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=On9lPSMr; dkim-atps=neutral;\n spf=pass (client-ip=2607:f8b0:4864:20::42e; helo=mail-pf1-x42e.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=1775228013; x=1775832813;\n darn=lists.ozlabs.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=fUTSB1GcQ+ZgkTavCnlkXCyNO/5I/d2MoyKGgMKrfsE=;\n b=On9lPSMrBXUx+R5j0fuNKOhDrUZVf6jZuVfKp29RgcEffDligDEmST1hJKFX7ag5Mw\n 06Kz8yqCWiueKLLoSkoyO7XtZNZtJwuF3qxceEBvlxf585SOWrQh10dKl0W2HfT+X+PG\n xClK6qLg6TS4CN5yYiriav3JxhlX159okURZzA2f46iAO+gGrOAWHZ0y7SL6O+3AXGu4\n Q7cLMwX4I8NV9SGOgGhBISpoiZHIA/a6Sgc1W75RBmHmgk2lYdpoecZ8ZyIU+J4e6xBV\n puZ3oQxJSzunaYskCDAEWS7rcC9erZVP7zaIlW0RV+StFo75XXRNH3JWLDhLPASedD10\n qrvg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775228013; x=1775832813;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=fUTSB1GcQ+ZgkTavCnlkXCyNO/5I/d2MoyKGgMKrfsE=;\n b=BdZA4Mu+F74zwIJgjL4FaWrk3skCkiELuuZ/w/upddqgJ8wlhvRgQbOE+/fYKc3NZ3\n iY7GlNeLLrBaqrYTdS2fWuhJxw0K9EgOqnlYIt4noQyfOnRPKKdEufM4Tho1I3r3abjb\n ewiB7DHx8hVSVK45OLKYl2tzc9RXmbyQhAPggPzljKF7R6cjdKL9kO9LZjtVaYmsEm3y\n dH3eLnXxbKEvpcin6ASNwUppP75CFnNaVoHSxed/DYTnIOrkXSmfu14k0AngO9Ud6Kw4\n RDuR7X1feWREwK28z2Se3pkDMIpGb+jS/XfSdZuDLhXQkox3lm9qyRHUzWG6DRms3kyA\n Ewnw==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCUG+2cYHEFav4n945uZPk4De+ypDTAjNheAArnovN4VrHwPSDb5rfYaEcwHIHwcZfPGAbJ1CLfZqYbgddE=@lists.ozlabs.org", "X-Gm-Message-State": "AOJu0Yw+wLXwh/brNX92QiNYvc8b6rmW/wGa6DjVNOY9X5Vk7zD2Knq1\n\t9e2v4OhptYArhIBICW9FyRhZwMRg5QzVkie1IyGCbQFPyI9eCKmCW88u", "X-Gm-Gg": "AeBDietgJtSZBPwfciSTPYHKJ1+FRV1MpBoFRvEmhqfq57xkl/rgR6tp1KxRW3BndLD\n\tcoatVOqb8IHS6xsI2B8ZvNm+HTrqmEIYwHWLtqxfbksrC0Mz1FrLSlIS1UHjh6HlKrltich/xUn\n\t5Me2qRH6VAzCSl30chB1kS4NBlep6t/9VIXjNBXTiFjExgqNRPJKeBqMGVrfvPldhyMWGJskZez\n\tW1F7u5VNCD57mqPTUaPgsrS/gWlW/GMhnrEYG4yY9yVR1CPe3l3U6Er7sXfOr3cG89mqm6VSXZ7\n\twil84zogrjjlmKC+kUtXgH3wiZq9ReTZqa+JMwnxyEaVhBSk5hoQaeSFG/cnGNGONcB9EJtff5w\n\t+EOG5DIkJVQlE5Bka/zSD4dX3wFlIXotP/ntH7I8HoXliJP2foxWzkHBIUW1BSYUF9WaLdW750V\n\tFn67fuq6fO2RxbDF+xOg0LGTc0/iiWJgc2+waTCc57+eoablb0ifDyagIIKDZvbibAWW4iTlYCU\n\tCdQhbUzCtqYIQ==", "X-Received": "by 2002:a05:6a00:3699:b0:81f:544b:3998 with SMTP id\n d2e1a72fcca58-82d0dd20f4amr2711320b3a.26.1775228012689;\n Fri, 03 Apr 2026 07:53:32 -0700 (PDT)", "From": "\"Mukesh Kumar Chaurasiya (IBM)\" <mkchauras@gmail.com>", "To": "maddy@linux.ibm.com,\n\tmpe@ellerman.id.au,\n\tnpiggin@gmail.com,\n\tchleroy@kernel.org,\n\tpeterz@infradead.org,\n\tjpoimboe@kernel.org,\n\tjbaron@akamai.com,\n\taliceryhl@google.com,\n\trostedt@goodmis.org,\n\tardb@kernel.org,\n\tojeda@kernel.org,\n\tboqun@kernel.org,\n\tgary@garyguo.net,\n\tbjorn3_gh@protonmail.com,\n\tlossin@kernel.org,\n\ta.hindborg@kernel.org,\n\ttmgross@umich.edu,\n\tdakr@kernel.org,\n\tnathan@kernel.org,\n\tnick.desaulniers+lkml@gmail.com,\n\tmorbo@google.com,\n\tjustinstitt@google.com,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tlinux-kernel@vger.kernel.org,\n\trust-for-linux@vger.kernel.org,\n\tllvm@lists.linux.dev", "Cc": "\"Mukesh Kumar Chaurasiya (IBM)\" <mkchauras@gmail.com>", "Subject": "[PATCH V8 1/4] rust: Fix \"multiple candidates for rmeta dependency\n core\" error", "Date": "Fri, 3 Apr 2026 20:23:05 +0530", "Message-ID": "<20260403145308.1042622-2-mkchauras@gmail.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260403145308.1042622-1-mkchauras@gmail.com>", "References": "<20260403145308.1042622-1-mkchauras@gmail.com>", "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-Transfer-Encoding": "8bit", "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" }, "content": "When building Rust code with LLVM=1 with -j1, rustc was encountering\nan error:\n\"multiple candidates for `rmeta` dependency `core` found\", with two\ncandidates:\n1. The host's standard library from the rustup toolchain\n2. The kernel's custom libcore.rmeta in the rust/ directory\n\nThis occurred because the build system was using `-L$(objtree)/rust`\nfor host library builds (proc_macro2, quote, syn), which caused rustc\nto search the rust/ directory. During this search, rustc would find\nboth the kernel's custom libcore.rmeta and gain access to the host's\nstandard library, creating a conflict.\n\nThe solution is to separate host libraries into a dedicated rust/host/\nsubdirectory and use `-L$(objtree)/rust/host` for host builds instead\nof `-L$(objtree)/rust`. This ensures that:\n\n1. Host library builds (proc_macro2, quote, syn) only search rust/host/\n and never encounter the kernel's libcore.rmeta\n2. Proc macro builds use `-L$(objtree)/rust/host` to find their\n dependencies\n3. Test builds use `-L$(objtree)/rust/test` for their dependencies\n4. Target builds continue to use `-L$(objtree)/rust` as before\n\nSpecial 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\nrust/ directory. It uses explicit `--extern` paths with absolute paths\nto reference the proc macros without adding `-L$(objtree)/rust`, which\nwould reintroduce the conflict.\n\nThe rust/host/ directory is added to clean-files to ensure it's removed\nduring `make clean`.\n\nChanges:\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\nLink: https://github.com/Rust-for-Linux/linux/issues/105\nLink: https://github.com/linuxppc/issues/issues/451\nSigned-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>\n---\n rust/Makefile | 63 ++++++++++++++++++++++++++++++++-------------------\n 1 file changed, 40 insertions(+), 23 deletions(-)", "diff": "diff --git a/rust/Makefile b/rust/Makefile\nindex 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 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", "prefixes": [ "V8", "1/4" ] }