[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNATFVmhfQv5Rb=Gkq=fST9+SmSFo_uPi4pB2ckC1qHdkqw@mail.gmail.com>
Date: Thu, 10 Oct 2024 20:37:50 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Hari Bathini <hbathini@...ux.ibm.com>
Cc: linuxppc-dev <linuxppc-dev@...ts.ozlabs.org>, bpf@...r.kernel.org,
linux-trace-kernel@...r.kernel.org, linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org, "Naveen N. Rao" <naveen@...nel.org>,
Mark Rutland <mark.rutland@....com>, Daniel Borkmann <daniel@...earbox.net>,
Nicholas Piggin <npiggin@...il.com>, Alexei Starovoitov <ast@...nel.org>, Steven Rostedt <rostedt@...dmis.org>,
Andrii Nakryiko <andrii@...nel.org>, Christophe Leroy <christophe.leroy@...roup.eu>,
Vishal Chourasia <vishalc@...ux.ibm.com>, Mahesh J Salgaonkar <mahesh@...ux.ibm.com>,
Masami Hiramatsu <mhiramat@...nel.org>
Subject: Re: [PATCH v5 11/17] kbuild: Add generic hook for architectures to
use before the final vmlinux link
On Thu, Oct 10, 2024 at 6:57 PM Hari Bathini <hbathini@...ux.ibm.com> wrote:
>
>
> On 09/10/24 8:53 pm, Masahiro Yamada wrote:
> > On Mon, Sep 16, 2024 at 5:58 AM Hari Bathini <hbathini@...ux.ibm.com> wrote:
> >>
> >> From: Naveen N Rao <naveen@...nel.org>
> >>
> >> On powerpc, we would like to be able to make a pass on vmlinux.o and
> >> generate a new object file to be linked into vmlinux. Add a generic pass
> >> in Makefile.vmlinux that architectures can use for this purpose.
> >>
> >> Architectures need to select CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX and must
> >> provide arch/<arch>/tools/Makefile with .arch.vmlinux.o target, which
> >> will be invoked prior to the final vmlinux link step.
> >>
> >> Signed-off-by: Naveen N Rao <naveen@...nel.org>
> >> Signed-off-by: Hari Bathini <hbathini@...ux.ibm.com>
> >> ---
> >>
> >> Changes in v5:
> >> * Intermediate files named .vmlinux.arch.* instead of .arch.vmlinux.*
> >>
> >>
> >> arch/Kconfig | 6 ++++++
> >> scripts/Makefile.vmlinux | 7 +++++++
> >> scripts/link-vmlinux.sh | 7 ++++++-
> >> 3 files changed, 19 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/Kconfig b/arch/Kconfig
> >> index 975dd22a2dbd..ef868ff8156a 100644
> >> --- a/arch/Kconfig
> >> +++ b/arch/Kconfig
> >> @@ -1643,4 +1643,10 @@ config CC_HAS_SANE_FUNCTION_ALIGNMENT
> >> config ARCH_NEED_CMPXCHG_1_EMU
> >> bool
> >>
> >> +config ARCH_WANTS_PRE_LINK_VMLINUX
> >> + def_bool n
> >
> >
> > Redundant default. This line should be "bool".
> >
> >
> >
> >
> >
> >
> >> + help
> >> + An architecture can select this if it provides arch/<arch>/tools/Makefile
> >> + with .arch.vmlinux.o target to be linked into vmlinux.
> >> +
> >> endmenu
> >> diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> >> index 49946cb96844..edf6fae8d960 100644
> >> --- a/scripts/Makefile.vmlinux
> >> +++ b/scripts/Makefile.vmlinux
> >> @@ -22,6 +22,13 @@ targets += .vmlinux.export.o
> >> vmlinux: .vmlinux.export.o
> >> endif
> >>
> >> +ifdef CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX
> >> +vmlinux: arch/$(SRCARCH)/tools/.vmlinux.arch.o
> >
> > If you move this to arch/*/tools/, there is no reason
> > to make it a hidden file.
>
> Thanks for reviewing and the detailed comments, Masahiro.
>
> >
> >
> > vmlinux: arch/$(SRCARCH)/tools/vmlinux.arch.o
> >
> >
> >
> >
> >> +arch/$(SRCARCH)/tools/.vmlinux.arch.o: vmlinux.o
> >
> > FORCE is missing.
>
>
> I dropped FORCE as it was rebuilding vmlinux on every invocation
> of `make` irrespective of whether vmlinux.o changed or not..
It is because you did not add vmlinux.arch.S to 'targets'
See my comment in 12/17.
targets += vmlinux.arch.S
> Just curious if the changes you suggested makes FORCE necessary
> or FORCE was expected even without the other changes you suggested?
FORCE is necessary.
arch/powerpc/tools/Makefile must be checked every time.
When arch/powerpc/tools/ftrace-gen-ool-stubs.sh is changed,
vmlinux must be relinked.
> Thanks
> Hari
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists