RE: [PATCH] kbuild: normalize paths in quiet compile output

"Wang, Yang(Kevin)" <[email protected]>
Newsgroups org.kernel.vger.linux-kbuild,org.freedesktop.lists.amd-gfx,org.kernel.vger.linux-kernel
Message-ID <DM6PR12MB29729B9355DAB5D0C7D9C125821D2@DM6PR12MB2972.namprd12.prod.outlook.com>
AMD General

> -----Original Message-----
> From: Nathan Chancellor <[email protected]>
> Sent: Tuesday, June 9, 2026 6:09 AM
> To: Wang, Yang(Kevin) <[email protected]>
> Cc: [email protected]; [email protected]; amd-
> [email protected]; [email protected]
> Subject: Re: [PATCH] kbuild: normalize paths in quiet compile output
>
> Hi Yang,
>
> On Mon, Jun 08, 2026 at 03:00:39PM +0800, Yang Wang wrote:
> > Composite objects may contain relative components in their member
> > object paths. This can make quiet compile output include noisy dot-dot
> > components, for example:
> >
> >   CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
> >
> > Use the existing normalize_path helper for quiet C and assembly
> > compile output so the same target is printed as:
> >
> >   CC [M]  drivers/gpu/drm/amd/amdkfd/kfd_module.o
> >
> > The actual compile commands still use $@, so object paths, dependency
> > tracking and generated files are unchanged.
> >
> > Signed-off-by: Yang Wang <[email protected]>
>
> While I agree that the dots are ugly, I do not want to take this change because
> it makes it harder to figure out how to build these .o files individually. For
> example:

Got it, thanks for the testing and explanation. I see the problem with direct single-file builds now.

Best Regards,
Kevin
>
>   $ make -kj"$(nproc)" ARCH=x86_64 CROSS_COMPILE=x86_64-linux-
> mrproper allmodconfig
> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
>   ...
>     CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
>
> works for building this file individually but the normalized path produced by
> this patch
>
>   $ make -kj"$(nproc)" ARCH=x86_64 CROSS_COMPILE=x86_64-linux-
> mrproper allmodconfig drivers/gpu/drm/amd/amdkfd/kfd_module.o
>   ...
>     CC      drivers/gpu/drm/amd/amdkfd/kfd_module.o
>   In file included from drivers/gpu/drm/amd/amdkfd/kfd_module.c:26:
>   drivers/gpu/drm/amd/amdkfd/kfd_priv.h:46:10: fatal error:
> kgd_kfd_interface.h: No such file or directory
>      46 | #include <kgd_kfd_interface.h>
>         |          ^~~~~~~~~~~~~~~~~~~~~
>   compilation terminated.
>   make[7]: *** [scripts/Makefile.build:289:
> drivers/gpu/drm/amd/amdkfd/kfd_module.o] Error 1
>
> does not.
>
> > ---
> >  scripts/Makefile.lib | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index
> > 28a1c08e3b22..7d1589d993a8 100644
> > --- a/scripts/Makefile.lib
> > +++ b/scripts/Makefile.lib
> > @@ -239,7 +239,7 @@ ifdef CONFIG_LTO_CLANG  cmd_ld_single = $(if
> > $(objtool-enabled)$(is-single-obj-m), ; $(LD) $(ld_flags) -r -o
> > $(tmp-target) $@; mv $(tmp-target) $@)  endif
> >
> > -quiet_cmd_cc_o_c = CC $(quiet_modtag)  $@
> > +quiet_cmd_cc_o_c = CC $(quiet_modtag)  $(call normalize_path,$@)
> >        cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $< \
> >             $(cmd_ld_single) \
> >             $(cmd_objtool)
> > @@ -254,7 +254,7 @@ define rule_cc_o_c
> >     $(call cmd,warn_shared_object)
> >  endef
> >
> > -quiet_cmd_as_o_S = AS $(quiet_modtag)  $@
> > +quiet_cmd_as_o_S = AS $(quiet_modtag)  $(call normalize_path,$@)
> >        cmd_as_o_S = $(CC) $(a_flags) -c -o $@ $< $(cmd_objtool)
> >
> >  define rule_as_o_S
> > --
> > 2.47.3
> >
>
> --
> Cheers,
> Nathan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.