[ Upstream commit de979c83574abf6e78f3fa65b716515c91b2613d ]
With CONFIG_PREEMPTION disabled, arch/x86/entry/thunk_$(BITS).o becomes
an empty object file.
With some old versions of binutils (i.e., 2.35.90.20210113-1ubuntu1) the
GNU assembler doesn't generate a symbol table for empty object files and
objtool fails with the following error when a valid symbol table cannot
be found:
arch/x86/entry/thunk_64.o: warning: objtool: missing symbol table
To prevent this from happening, build thunk_$(BITS).o only if
CONFIG_PREEMPTION is enabled.
BugLink: https://bugs.launchpad.net/bugs/1911359
Fixes: 320100a5ff ("x86/entry: Remove the TRACE_IRQS cruft")
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/Ys/Ke7EWjcX+ZlXO@arighi-desktop
Signed-off-by: Sasha Levin <sashal@kernel.org>
51 lines
1.2 KiB
Makefile
51 lines
1.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
|
|
#
|
|
|
|
ifeq ($(CONFIG_X86_32),y)
|
|
BITS := 32
|
|
else
|
|
BITS := 64
|
|
endif
|
|
|
|
obj-y = bugs_$(BITS).o delay.o fault.o ldt.o \
|
|
ptrace_$(BITS).o ptrace_user.o setjmp_$(BITS).o signal.o \
|
|
stub_$(BITS).o stub_segv.o \
|
|
sys_call_table_$(BITS).o sysrq_$(BITS).o tls_$(BITS).o \
|
|
mem_$(BITS).o subarch.o os-$(OS)/
|
|
|
|
ifeq ($(CONFIG_X86_32),y)
|
|
|
|
obj-y += checksum_32.o syscalls_32.o
|
|
obj-$(CONFIG_ELF_CORE) += elfcore.o
|
|
|
|
subarch-y = ../lib/string_32.o ../lib/atomic64_32.o ../lib/atomic64_cx8_32.o
|
|
subarch-y += ../lib/cmpxchg8b_emu.o ../lib/atomic64_386_32.o
|
|
subarch-y += ../kernel/sys_ia32.o
|
|
|
|
else
|
|
|
|
obj-y += syscalls_64.o vdso/
|
|
|
|
subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o
|
|
subarch-$(CONFIG_PREEMPTION) += ../entry/thunk_64.o
|
|
|
|
endif
|
|
|
|
subarch-$(CONFIG_MODULES) += ../kernel/module.o
|
|
|
|
USER_OBJS := bugs_$(BITS).o ptrace_user.o fault.o
|
|
|
|
$(obj)/user-offsets.s: c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) \
|
|
-Iarch/x86/include/generated
|
|
targets += user-offsets.s
|
|
|
|
include/generated/user_constants.h: $(obj)/user-offsets.s
|
|
$(call filechk,offsets,__USER_CONSTANT_H__)
|
|
|
|
UNPROFILE_OBJS := stub_segv.o
|
|
CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING)
|
|
|
|
include arch/um/scripts/Makefile.rules
|