From: Greg Kroah-Hartman Date: Sun, 16 Jan 2022 08:54:14 +0000 (+0100) Subject: 5.10-stable patches X-Git-Tag: v5.16.2~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e328d6b507ce4eb925d06581bb34be4d338ebf25;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: kbuild-add-kbuild_hostldflags-to-has_libelf-test.patch --- diff --git a/queue-5.10/kbuild-add-kbuild_hostldflags-to-has_libelf-test.patch b/queue-5.10/kbuild-add-kbuild_hostldflags-to-has_libelf-test.patch new file mode 100644 index 00000000000..431dc794d75 --- /dev/null +++ b/queue-5.10/kbuild-add-kbuild_hostldflags-to-has_libelf-test.patch @@ -0,0 +1,54 @@ +From f634ca650f724347892068489c7920631a3aac6a Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Thu, 22 Apr 2021 13:19:14 -0700 +Subject: kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test + +From: Nathan Chancellor + +commit f634ca650f724347892068489c7920631a3aac6a upstream. + +Normally, invocations of $(HOSTCC) include $(KBUILD_HOSTLDFLAGS), which +in turn includes $(HOSTLDFLAGS), which allows users to pass in their own +flags when linking. However, the 'has_libelf' test does not, meaning +that if a user requests a specific linker via HOSTLDFLAGS=-fuse-ld=..., +it is not respected and the build might error. + +For example, if a user building with clang wants to use all of the LLVM +tools without any GNU tools, they might remove all of the GNU tools from +their system or PATH then build with + +$ make HOSTLDFLAGS=-fuse-ld=lld LLVM=1 LLVM_IAS=1 + +which says use all of the LLVM tools, the integrated assembler, and +ld.lld for linking host executables. Without this change, the build will +error because $(HOSTCC) uses its default linker, rather than the one +requested via -fuse-ld=..., which is GNU ld in clang's case in a default +configuration. + +error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please +install libelf-dev, libelf-devel or elfutils-libelf-devel +make[1]: *** [Makefile:1260: prepare-objtool] Error 1 + +Add $(KBUILD_HOSTLDFLAGS) to the 'has_libelf' test so that the linker +choice is respected. + +Link: https://github.com/ClangBuiltLinux/linux/issues/479 +Signed-off-by: Nathan Chancellor +Signed-off-by: Masahiro Yamada +Cc: Paul Barker +Signed-off-by: Greg Kroah-Hartman +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Makefile ++++ b/Makefile +@@ -1073,7 +1073,7 @@ export mod_sign_cmd + HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) + + has_libelf = $(call try-run,\ +- echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) ++ echo "int main() {}" | $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -xc -o /dev/null $(HOST_LIBELF_LIBS) -,1,0) + + ifdef CONFIG_STACK_VALIDATION + ifeq ($(has_libelf),1) diff --git a/queue-5.10/series b/queue-5.10/series new file mode 100644 index 00000000000..c35ecefdd73 --- /dev/null +++ b/queue-5.10/series @@ -0,0 +1 @@ +kbuild-add-kbuild_hostldflags-to-has_libelf-test.patch