mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 02:19:51 +00:00
![Masahiro Yamada](/assets/img/avatar_default.png)
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: Masahiro Yamada <masahiroy@kernel.org> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
49 lines
1.5 KiB
Makefile
49 lines
1.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the Linux/SuperH kernel.
|
|
#
|
|
|
|
extra-y := vmlinux.lds
|
|
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
# Do not profile debug and lowlevel utilities
|
|
CFLAGS_REMOVE_ftrace.o = -pg
|
|
endif
|
|
|
|
CFLAGS_REMOVE_return_address.o = -pg
|
|
|
|
obj-y := head_32.o debugtraps.o dumpstack.o \
|
|
idle.o io.o irq.o irq_32.o kdebugfs.o \
|
|
machvec.o nmi_debug.o process.o \
|
|
process_32.o ptrace.o ptrace_32.o \
|
|
reboot.o return_address.o \
|
|
setup.o signal_32.o sys_sh.o \
|
|
syscalls_32.o time.o topology.o traps.o \
|
|
traps_32.o unwinder.o
|
|
|
|
ifndef CONFIG_GENERIC_IOMAP
|
|
obj-y += iomap.o
|
|
obj-$(CONFIG_HAS_IOPORT_MAP) += ioport.o
|
|
endif
|
|
|
|
obj-y += sys_sh32.o
|
|
obj-y += cpu/
|
|
obj-$(CONFIG_VSYSCALL) += vsyscall/
|
|
obj-$(CONFIG_SMP) += smp.o
|
|
obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o
|
|
obj-$(CONFIG_KGDB) += kgdb.o
|
|
obj-$(CONFIG_MODULES) += sh_ksyms_32.o module.o
|
|
obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
|
|
obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
|
|
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
|
obj-$(CONFIG_IO_TRAPPED) += io_trapped.o
|
|
obj-$(CONFIG_KPROBES) += kprobes.o
|
|
obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
|
|
obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o
|
|
obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
|
|
obj-$(CONFIG_DUMP_CODE) += disassemble.o
|
|
obj-$(CONFIG_HIBERNATION) += swsusp.o
|
|
obj-$(CONFIG_DWARF_UNWINDER) += dwarf.o
|
|
obj-$(CONFIG_PERF_EVENTS) += perf_event.o perf_callchain.o
|
|
obj-$(CONFIG_DMA_NONCOHERENT) += dma-coherent.o
|
|
obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o
|