On Sat, 2024-03-30 at 09:57 +0000, tip-bot2 for Masahiro Yamada wrote: > The following commit has been merged into the x86/urgent branch of tip: > > Commit-ID: 3f1a9bc5d878004ed4bc3904e5cb9b7fb317fbe2 > Gitweb: https://git.kernel.org/tip/3f1a9bc5d878004ed4bc3904e5cb9b7fb317fbe2 > Author: Masahiro Yamada <masahiroy@xxxxxxxxxx> > AuthorDate: Sat, 30 Mar 2024 15:05:54 +09:00 > Committer: Ingo Molnar <mingo@xxxxxxxxxx> > CommitterDate: Sat, 30 Mar 2024 10:41:49 +01:00 > > x86/build: Use obj-y to descend into arch/x86/virt/ > > Commit c33621b4c5ad ("x86/virt/tdx: Wire up basic SEAMCALL functions") > introduced a new instance of core-y instead of the standardized obj-y > syntax. > > X86 Makefiles descend into subdirectories of arch/x86/virt inconsistently; > into arch/x86/virt/ via core-y defined in arch/x86/Makefile, but into > arch/x86/virt/svm/ via obj-y defined in arch/x86/Kbuild. > > This is problematic when you build a single object in parallel because > multiple threads attempt to build the same file. > > $ make -j$(nproc) arch/x86/virt/vmx/tdx/seamcall.o > [ snip ] > AS arch/x86/virt/vmx/tdx/seamcall.o > AS arch/x86/virt/vmx/tdx/seamcall.o > fixdep: error opening file: arch/x86/virt/vmx/tdx/.seamcall.o.d: No such file or directory > make[4]: *** [scripts/Makefile.build:362: arch/x86/virt/vmx/tdx/seamcall.o] Error 2 > > Use the obj-y syntax, as it works correctly. > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx> > Link: https://lore.kernel.org/r/20240330060554.18524-1-masahiroy@xxxxxxxxxx Thanks. Should this be included into stable kernel? As stated in the changelog, the problem starts to exist since commit c33621b4c5ad ("x86/virt/tdx: Wire up basic SEAMCALL functions") > --- > arch/x86/Kbuild | 2 +- > arch/x86/Makefile | 2 -- > arch/x86/virt/Makefile | 2 +- > 3 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/Kbuild b/arch/x86/Kbuild > index 6a1f36d..cf0ad89 100644 > --- a/arch/x86/Kbuild > +++ b/arch/x86/Kbuild > @@ -28,7 +28,7 @@ obj-y += net/ > > obj-$(CONFIG_KEXEC_FILE) += purgatory/ > > -obj-y += virt/svm/ > +obj-y += virt/ > > # for cleaning > subdir- += boot tools > diff --git a/arch/x86/Makefile b/arch/x86/Makefile > index 662d9d4..5ab93fc 100644 > --- a/arch/x86/Makefile > +++ b/arch/x86/Makefile > @@ -251,8 +251,6 @@ archheaders: > > libs-y += arch/x86/lib/ > > -core-y += arch/x86/virt/ > - > # drivers-y are linked after core-y > drivers-$(CONFIG_MATH_EMULATION) += arch/x86/math-emu/ > drivers-$(CONFIG_PCI) += arch/x86/pci/ > diff --git a/arch/x86/virt/Makefile b/arch/x86/virt/Makefile > index 1e36502..ea343fc 100644 > --- a/arch/x86/virt/Makefile > +++ b/arch/x86/virt/Makefile > @@ -1,2 +1,2 @@ > # SPDX-License-Identifier: GPL-2.0-only > -obj-y += vmx/ > +obj-y += svm/ vmx/ >