]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Jan 2018 07:53:36 +0000 (08:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Jan 2018 07:53:36 +0000 (08:53 +0100)
added patches:
objtool-fix-seg-fault-with-gold-linker.patch

queue-4.14/objtool-fix-seg-fault-with-gold-linker.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/objtool-fix-seg-fault-with-gold-linker.patch b/queue-4.14/objtool-fix-seg-fault-with-gold-linker.patch
new file mode 100644 (file)
index 0000000..5f8f36c
--- /dev/null
@@ -0,0 +1,77 @@
+From 2a0098d70640dda192a79966c14d449e7a34d675 Mon Sep 17 00:00:00 2001
+From: Josh Poimboeuf <jpoimboe@redhat.com>
+Date: Mon, 15 Jan 2018 08:17:07 -0600
+Subject: objtool: Fix seg fault with gold linker
+
+From: Josh Poimboeuf <jpoimboe@redhat.com>
+
+commit 2a0098d70640dda192a79966c14d449e7a34d675 upstream.
+
+Objtool segfaults when the gold linker is used with
+CONFIG_MODVERSIONS=y and CONFIG_UNWINDER_ORC=y.
+
+With CONFIG_MODVERSIONS=y, the .o file gets passed to the linker before
+being passed to objtool.  The gold linker seems to strip unused ELF
+symbols by default, which confuses objtool and causes the seg fault when
+it's trying to generate ORC metadata.
+
+Objtool should really be running immediately after GCC anyway, without a
+linker call in between.  Change the makefile ordering so that objtool is
+called before the linker.
+
+Reported-and-tested-by: Markus <M4rkusXXL@web.de>
+Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Fixes: ee9f8fce9964 ("x86/unwind: Add the ORC unwinder")
+Link: http://lkml.kernel.org/r/355f04da33581f4a3bf82e5b512973624a1e23a2.1516025651.git.jpoimboe@redhat.com
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ scripts/Makefile.build |   14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+--- a/scripts/Makefile.build
++++ b/scripts/Makefile.build
+@@ -270,12 +270,18 @@ else
+ objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable)
+ endif
++ifdef CONFIG_MODVERSIONS
++objtool_o = $(@D)/.tmp_$(@F)
++else
++objtool_o = $(@)
++endif
++
+ # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory
+ # 'OBJECT_FILES_NON_STANDARD_foo.o := 'y': skip objtool checking for a file
+ # 'OBJECT_FILES_NON_STANDARD_foo.o := 'n': override directory skip for a file
+ cmd_objtool = $(if $(patsubst y%,, \
+       $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \
+-      $(__objtool_obj) $(objtool_args) "$(@)";)
++      $(__objtool_obj) $(objtool_args) "$(objtool_o)";)
+ objtool_obj = $(if $(patsubst y%,, \
+       $(OBJECT_FILES_NON_STANDARD_$(basetarget).o)$(OBJECT_FILES_NON_STANDARD)n), \
+       $(__objtool_obj))
+@@ -291,15 +297,15 @@ objtool_dep = $(objtool_obj)                                     \
+ define rule_cc_o_c
+       $(call echo-cmd,checksrc) $(cmd_checksrc)                         \
+       $(call cmd_and_fixdep,cc_o_c)                                     \
+-      $(cmd_modversions_c)                                              \
+       $(call echo-cmd,objtool) $(cmd_objtool)                           \
++      $(cmd_modversions_c)                                              \
+       $(call echo-cmd,record_mcount) $(cmd_record_mcount)
+ endef
+ define rule_as_o_S
+       $(call cmd_and_fixdep,as_o_S)                                     \
+-      $(cmd_modversions_S)                                              \
+-      $(call echo-cmd,objtool) $(cmd_objtool)
++      $(call echo-cmd,objtool) $(cmd_objtool)                           \
++      $(cmd_modversions_S)
+ endef
+ # List module undefined symbols (or empty line if not enabled)
index c19fe51c69262ffc5c03f86f3758933c73d629f4..ebf1c45d2121baa4c7f7963dabb630188e5dc4aa 100644 (file)
@@ -26,3 +26,4 @@ af_key-fix-buffer-overread-in-verify_address_len.patch
 af_key-fix-buffer-overread-in-parse_exthdrs.patch
 iser-target-fix-possible-use-after-free-in-connection-establishment-error.patch
 delayacct-account-blkio-completion-on-the-correct-task.patch
+objtool-fix-seg-fault-with-gold-linker.patch