On 09/10/24 8:53 pm, Masahiro Yamada wrote:
On Mon, Sep 16, 2024 at 5:58 AM Hari Bathini <hbath...@linux.ibm.com> wrote:

From: Naveen N Rao <nav...@kernel.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 <nav...@kernel.org>
Signed-off-by: Hari Bathini <hbath...@linux.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..
Just curious if the changes you suggested makes FORCE necessary
or FORCE was expected even without the other changes you suggested?

Thanks
Hari

Reply via email to