• Masahiro Yamada's avatar
    kbuild: use obj-y instead extra-y for objects placed at the head · 32164845
    Masahiro Yamada authored
    The objects placed at the head of vmlinux need special treatments:
    
     - arch/$(SRCARCH)/Makefile adds them to head-y in order to place
       them before other archives in the linker command line.
    
     - arch/$(SRCARCH)/kernel/Makefile adds them to extra-y instead of
       obj-y to avoid them going into built-in.a.
    
    This commit gets rid of the latter.
    
    Create vmlinux.a to collect all the objects that are unconditionally
    linked to vmlinux. The objects listed in head-y are moved to the head
    of vmlinux.a by using 'ar m'.
    
    With this, arch/$(SRCARCH)/kernel/Makefile can consistently use obj-y
    for builtin objects.
    
    There is no *.o that is directly linked to vmlinux. Drop unneeded code
    in scripts/clang-tools/gen_compile_commands.py.
    
    $(AR) mPi needs 'T' to workaround the llvm-ar bug. The fix was suggested
    by Nathan Chancellor [1].
    
    [1]: https://lore.kernel.org/llvm/YyjjT5gQ2hGMH0ni@dev-arch.thelio-3990X/
    
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    ...
    32164845
Makefile 684 Bytes