From: Greg Kroah-Hartman Date: Mon, 8 Feb 2021 09:25:52 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.4.257~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c3d89a92cb7598dbd48f1b89ea2229f20d391c44;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: elfcore-fix-building-with-clang.patch --- diff --git a/queue-4.9/elfcore-fix-building-with-clang.patch b/queue-4.9/elfcore-fix-building-with-clang.patch new file mode 100644 index 00000000000..6e2f7d5528c --- /dev/null +++ b/queue-4.9/elfcore-fix-building-with-clang.patch @@ -0,0 +1,109 @@ +From 6e7b64b9dd6d96537d816ea07ec26b7dedd397b9 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Fri, 11 Dec 2020 13:36:46 -0800 +Subject: elfcore: fix building with clang + +From: Arnd Bergmann + +commit 6e7b64b9dd6d96537d816ea07ec26b7dedd397b9 upstream. + +kernel/elfcore.c only contains weak symbols, which triggers a bug with +clang in combination with recordmcount: + + Cannot find symbol for section 2: .text. + kernel/elfcore.o: failed + +Move the empty stubs into linux/elfcore.h as inline functions. As only +two architectures use these, just use the architecture specific Kconfig +symbols to key off the declaration. + +Link: https://lkml.kernel.org/r/20201204165742.3815221-2-arnd@kernel.org +Signed-off-by: Arnd Bergmann +Cc: Nathan Chancellor +Cc: Nick Desaulniers +Cc: Barret Rhoden +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/elfcore.h | 22 ++++++++++++++++++++++ + kernel/Makefile | 1 - + kernel/elfcore.c | 25 ------------------------- + 3 files changed, 22 insertions(+), 26 deletions(-) + delete mode 100644 kernel/elfcore.c + +--- a/include/linux/elfcore.h ++++ b/include/linux/elfcore.h +@@ -55,6 +55,7 @@ static inline int elf_core_copy_task_xfp + } + #endif + ++#if defined(CONFIG_UM) || defined(CONFIG_IA64) + /* + * These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out + * extra segments containing the gate DSO contents. Dumping its +@@ -69,5 +70,26 @@ elf_core_write_extra_phdrs(struct coredu + extern int + elf_core_write_extra_data(struct coredump_params *cprm); + extern size_t elf_core_extra_data_size(void); ++#else ++static inline Elf_Half elf_core_extra_phdrs(void) ++{ ++ return 0; ++} ++ ++static inline int elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset) ++{ ++ return 1; ++} ++ ++static inline int elf_core_write_extra_data(struct coredump_params *cprm) ++{ ++ return 1; ++} ++ ++static inline size_t elf_core_extra_data_size(void) ++{ ++ return 0; ++} ++#endif + + #endif /* _LINUX_ELFCORE_H */ +--- a/kernel/Makefile ++++ b/kernel/Makefile +@@ -90,7 +90,6 @@ obj-$(CONFIG_TASK_DELAY_ACCT) += delayac + obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o + obj-$(CONFIG_TRACEPOINTS) += tracepoint.o + obj-$(CONFIG_LATENCYTOP) += latencytop.o +-obj-$(CONFIG_ELFCORE) += elfcore.o + obj-$(CONFIG_FUNCTION_TRACER) += trace/ + obj-$(CONFIG_TRACING) += trace/ + obj-$(CONFIG_TRACE_CLOCK) += trace/ +--- a/kernel/elfcore.c ++++ /dev/null +@@ -1,25 +0,0 @@ +-#include +-#include +-#include +-#include +-#include +- +-Elf_Half __weak elf_core_extra_phdrs(void) +-{ +- return 0; +-} +- +-int __weak elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset) +-{ +- return 1; +-} +- +-int __weak elf_core_write_extra_data(struct coredump_params *cprm) +-{ +- return 1; +-} +- +-size_t __weak elf_core_extra_data_size(void) +-{ +- return 0; +-} diff --git a/queue-4.9/series b/queue-4.9/series index 74f1e08db5e..016f1f459cb 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -21,3 +21,4 @@ usb-serial-cp210x-add-new-vid-pid-for-supporting-teraoka-ad2000.patch usb-serial-option-adding-support-for-cinterion-mv31.patch input-i8042-unbreak-pegatron-c15b.patch net-lapb-copy-the-skb-before-sending-a-packet.patch +elfcore-fix-building-with-clang.patch