[PATCH v5 11/17] kbuild: Add generic hook for architectures to use before the final vmlinux link
Hari Bathini
hbathini at linux.ibm.com
Thu Oct 10 20:56:30 AEDT 2024
On 09/10/24 8:53 pm, Masahiro Yamada wrote:
> On Mon, Sep 16, 2024 at 5:58 AM Hari Bathini <hbathini at linux.ibm.com> wrote:
>>
>> From: Naveen N Rao <naveen at 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 <naveen at kernel.org>
>> Signed-off-by: Hari Bathini <hbathini at 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
More information about the Linuxppc-dev
mailing list