diff --git a/target/linux/generic/backport-5.4/040-ARM-8918-2-only-build-return_address-if-needed.patch b/target/linux/generic/backport-5.4/040-ARM-8918-2-only-build-return_address-if-needed.patch new file mode 100644 index 0000000000..c9301f9c2a --- /dev/null +++ b/target/linux/generic/backport-5.4/040-ARM-8918-2-only-build-return_address-if-needed.patch @@ -0,0 +1,60 @@ +From fb033c95c94ca1ee3d16e04ebdb85d65fb55fff8 Mon Sep 17 00:00:00 2001 +From: Ben Dooks +Date: Mon, 4 Nov 2019 18:15:15 +0100 +Subject: [PATCH] ARM: 8918/2: only build return_address() if needed + +The system currently warns if the config conditions for +building return_address in arch/arm/kernel/return_address.c +are not met, leaving just an EXPORT_SYMBOL_GPL(return_address) +of a function defined to be 'static linline'. +This is a result of aeea3592a13b ("ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h"). + +Since we're not going to build anything other than an exported +symbol for something that is already being defined to be an +inline-able return of NULL, just avoid building the code to +remove the following warning: + +Fixes: aeea3592a13b ("ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h") +Signed-off-by: Ben Dooks +Signed-off-by: Russell King +--- + arch/arm/kernel/Makefile | 6 +++++- + arch/arm/kernel/return_address.c | 4 ---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +--- a/arch/arm/kernel/Makefile ++++ b/arch/arm/kernel/Makefile +@@ -17,10 +17,14 @@ CFLAGS_REMOVE_return_address.o = -pg + # Object file lists. + + obj-y := elf.o entry-common.o irq.o opcodes.o \ +- process.o ptrace.o reboot.o return_address.o \ ++ process.o ptrace.o reboot.o \ + setup.o signal.o sigreturn_codes.o \ + stacktrace.o sys_arm.o time.o traps.o + ++ifneq ($(CONFIG_ARM_UNWIND),y) ++obj-$(CONFIG_FRAME_POINTER) += return_address.o ++endif ++ + obj-$(CONFIG_ATAGS) += atags_parse.o + obj-$(CONFIG_ATAGS_PROC) += atags_proc.o + obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) += atags_compat.o +--- a/arch/arm/kernel/return_address.c ++++ b/arch/arm/kernel/return_address.c +@@ -7,8 +7,6 @@ + */ + #include + #include +- +-#if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) + #include + + #include +@@ -53,6 +51,4 @@ void *return_address(unsigned int level) + return NULL; + } + +-#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) */ +- + EXPORT_SYMBOL_GPL(return_address);