diff mbox series

kbuild: Use $(obj)/%.cc to fix host C++ module builds

Message ID 20240624-kbuild-fix-xconfig-v1-1-7c06eae6d3aa@avm.de (mailing list archive)
State New
Headers show
Series kbuild: Use $(obj)/%.cc to fix host C++ module builds | expand

Commit Message

Nicolas Schier June 24, 2024, 11:12 a.m. UTC
Use $(obj)/ instead of $(src)/ prefix when building C++ modules for
host, as explained in commit b1992c3772e6 ("kbuild: use $(src) instead
of $(srctree)/$(src) for source directory").  This fixes build failures
of 'xconfig':

    $ make O=build/ xconfig
    make[1]: Entering directory '/data/linux/kbuild-review/build'
      GEN     Makefile
    make[3]: *** No rule to make target '../scripts/kconfig/qconf-moc.cc', needed by 'scripts/kconfig/qconf-moc.o'.  Stop.

Fixes: b1992c3772e6 ("kbuild: use $(src) instead of $(srctree)/$(src) for source directory")
Reported-by: Rolf Eike Beer <eb@emlix.com>
Signed-off-by: Nicolas Schier <n.schier@avm.de>
---
 scripts/Makefile.host | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: 224a21441b0925ce1e60afb27629773a522c946e
change-id: 20240624-kbuild-fix-xconfig-f0e95d0d5b27

Best regards,

Comments

Rolf Eike Beer June 24, 2024, 11:14 a.m. UTC | #1
On Montag, 24. Juni 2024 13:12:14 MESZ Nicolas Schier wrote:
> Use $(obj)/ instead of $(src)/ prefix when building C++ modules for
> host, as explained in commit b1992c3772e6 ("kbuild: use $(src) instead
> of $(srctree)/$(src) for source directory").  This fixes build failures
> of 'xconfig':
> 
>     $ make O=build/ xconfig
>     make[1]: Entering directory '/data/linux/kbuild-review/build'
>       GEN     Makefile
>     make[3]: *** No rule to make target '../scripts/kconfig/qconf-moc.cc',
> needed by 'scripts/kconfig/qconf-moc.o'.  Stop.
> 
> Fixes: b1992c3772e6 ("kbuild: use $(src) instead of $(srctree)/$(src) for
> source directory")
> Reported-by: Rolf Eike Beer <eb@emlix.com>
> Signed-off-by: Nicolas Schier <n.schier@avm.de>

Thanks, works for me.

Tested-by: Rolf Eike Beer <eb@emlix.com>
Masahiro Yamada June 25, 2024, 2:05 p.m. UTC | #2
On Mon, Jun 24, 2024 at 8:12 PM Nicolas Schier <n.schier@avm.de> wrote:
>
> Use $(obj)/ instead of $(src)/ prefix when building C++ modules for
> host, as explained in commit b1992c3772e6 ("kbuild: use $(src) instead
> of $(srctree)/$(src) for source directory").  This fixes build failures
> of 'xconfig':
>
>     $ make O=build/ xconfig
>     make[1]: Entering directory '/data/linux/kbuild-review/build'
>       GEN     Makefile
>     make[3]: *** No rule to make target '../scripts/kconfig/qconf-moc.cc', needed by 'scripts/kconfig/qconf-moc.o'.  Stop.
>
> Fixes: b1992c3772e6 ("kbuild: use $(src) instead of $(srctree)/$(src) for source directory")
> Reported-by: Rolf Eike Beer <eb@emlix.com>
> Signed-off-by: Nicolas Schier <n.schier@avm.de>

Applied to linux-kbuild.
Thanks!



> ---
>  scripts/Makefile.host | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/Makefile.host b/scripts/Makefile.host
> index d35f55e0d141..e85be7721a48 100644
> --- a/scripts/Makefile.host
> +++ b/scripts/Makefile.host
> @@ -146,7 +146,7 @@ $(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
>  # Create .o file from a single .cc (C++) file
>  quiet_cmd_host-cxxobjs = HOSTCXX $@
>        cmd_host-cxxobjs = $(HOSTCXX) $(hostcxx_flags) -c -o $@ $<
> -$(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
> +$(host-cxxobjs): $(obj)/%.o: $(obj)/%.cc FORCE
>         $(call if_changed_dep,host-cxxobjs)
>
>  # Create executable from a single Rust crate (which may consist of
>
> ---
> base-commit: 224a21441b0925ce1e60afb27629773a522c946e
> change-id: 20240624-kbuild-fix-xconfig-f0e95d0d5b27
>
> Best regards,
> --
> Nicolas Schier
>
diff mbox series

Patch

diff --git a/scripts/Makefile.host b/scripts/Makefile.host
index d35f55e0d141..e85be7721a48 100644
--- a/scripts/Makefile.host
+++ b/scripts/Makefile.host
@@ -146,7 +146,7 @@  $(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
 # Create .o file from a single .cc (C++) file
 quiet_cmd_host-cxxobjs	= HOSTCXX $@
       cmd_host-cxxobjs	= $(HOSTCXX) $(hostcxx_flags) -c -o $@ $<
-$(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
+$(host-cxxobjs): $(obj)/%.o: $(obj)/%.cc FORCE
 	$(call if_changed_dep,host-cxxobjs)
 
 # Create executable from a single Rust crate (which may consist of