]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Feb 2023 09:55:58 +0000 (10:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Feb 2023 09:55:58 +0000 (10:55 +0100)
added patches:
arch-fix-broken-buildid-for-arm64-and-riscv.patch
arm64-remove-special-treatment-for-the-link-order-of-head.o.patch
powerpc-vmlinux.lds-define-runtime_discard_exit.patch
powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
riscv-remove-special-treatment-for-the-link-order-of-head.o.patch
s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
sh-define-runtime_discard_exit.patch

queue-6.1/arch-fix-broken-buildid-for-arm64-and-riscv.patch [new file with mode: 0644]
queue-6.1/arm64-remove-special-treatment-for-the-link-order-of-head.o.patch [new file with mode: 0644]
queue-6.1/powerpc-vmlinux.lds-define-runtime_discard_exit.patch [new file with mode: 0644]
queue-6.1/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch [new file with mode: 0644]
queue-6.1/riscv-remove-special-treatment-for-the-link-order-of-head.o.patch [new file with mode: 0644]
queue-6.1/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch [new file with mode: 0644]
queue-6.1/series
queue-6.1/sh-define-runtime_discard_exit.patch [new file with mode: 0644]

diff --git a/queue-6.1/arch-fix-broken-buildid-for-arm64-and-riscv.patch b/queue-6.1/arch-fix-broken-buildid-for-arm64-and-riscv.patch
new file mode 100644 (file)
index 0000000..ce02890
--- /dev/null
@@ -0,0 +1,56 @@
+From 99cb0d917ffa1ab628bb67364ca9b162c07699b1 Mon Sep 17 00:00:00 2001
+From: Masahiro Yamada <masahiroy@kernel.org>
+Date: Tue, 27 Dec 2022 03:45:37 +0900
+Subject: arch: fix broken BuildID for arm64 and riscv
+
+From: Masahiro Yamada <masahiroy@kernel.org>
+
+commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream.
+
+Dennis Gilmore reports that the BuildID is missing in the arm64 vmlinux
+since commit 994b7ac1697b ("arm64: remove special treatment for the
+link order of head.o").
+
+The issue is that the type of .notes section, which contains the BuildID,
+changed from NOTES to PROGBITS.
+
+Ard Biesheuvel figured out that whichever object gets linked first gets
+to decide the type of a section. The PROGBITS type is the result of the
+compiler emitting .note.GNU-stack as PROGBITS rather than NOTE.
+
+While Ard provided a fix for arm64, I want to fix this globally because
+the same issue is happening on riscv since commit 2348e6bf4421 ("riscv:
+remove special treatment for the link order of head.o"). This problem
+will happen in general for other architectures if they start to drop
+unneeded entries from scripts/head-object-list.txt.
+
+Discard .note.GNU-stack in include/asm-generic/vmlinux.lds.h.
+
+Link: https://lore.kernel.org/lkml/CAABkxwuQoz1CTbyb57n0ZX65eSYiTonFCU8-LCQc=74D=xE=rA@mail.gmail.com/
+Fixes: 994b7ac1697b ("arm64: remove special treatment for the link order of head.o")
+Fixes: 2348e6bf4421 ("riscv: remove special treatment for the link order of head.o")
+Reported-by: Dennis Gilmore <dennis@ausil.us>
+Suggested-by: Ard Biesheuvel <ardb@kernel.org>
+Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
+Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/asm-generic/vmlinux.lds.h |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/include/asm-generic/vmlinux.lds.h
++++ b/include/asm-generic/vmlinux.lds.h
+@@ -929,7 +929,12 @@
+ #define PRINTK_INDEX
+ #endif
++/*
++ * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler.
++ * Otherwise, the type of .notes section would become PROGBITS instead of NOTES.
++ */
+ #define NOTES                                                         \
++      /DISCARD/ : { *(.note.GNU-stack) }                              \
+       .notes : AT(ADDR(.notes) - LOAD_OFFSET) {                       \
+               __start_notes = .;                                      \
+               KEEP(*(.note.*))                                        \
diff --git a/queue-6.1/arm64-remove-special-treatment-for-the-link-order-of-head.o.patch b/queue-6.1/arm64-remove-special-treatment-for-the-link-order-of-head.o.patch
new file mode 100644 (file)
index 0000000..7957726
--- /dev/null
@@ -0,0 +1,39 @@
+From 994b7ac1697b4581b7726d2ac64321e3c840229b Mon Sep 17 00:00:00 2001
+From: Masahiro Yamada <masahiroy@kernel.org>
+Date: Thu, 13 Oct 2022 08:35:00 +0900
+Subject: arm64: remove special treatment for the link order of head.o
+
+From: Masahiro Yamada <masahiroy@kernel.org>
+
+commit 994b7ac1697b4581b7726d2ac64321e3c840229b upstream.
+
+In the previous discussion (see the Link tag), Ard pointed out that
+arm/arm64/kernel/head.o does not need any special treatment - the only
+piece that must appear right at the start of the binary image is the
+image header which is emitted into .head.text.
+
+The linker script does the right thing to do. The build system does
+not need to manipulate the link order of head.o.
+
+Link: https://lore.kernel.org/lkml/CAMj1kXH77Ja8bSsq2Qj8Ck9iSZKw=1F8Uy-uAWGVDm4-CG=EuA@mail.gmail.com/
+Suggested-by: Ard Biesheuvel <ardb@kernel.org>
+Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
+Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
+Link: https://lore.kernel.org/r/20221012233500.156764-1-masahiroy@kernel.org
+Signed-off-by: Will Deacon <will@kernel.org>
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/head-object-list.txt |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/scripts/head-object-list.txt
++++ b/scripts/head-object-list.txt
+@@ -15,7 +15,6 @@ arch/alpha/kernel/head.o
+ arch/arc/kernel/head.o
+ arch/arm/kernel/head-nommu.o
+ arch/arm/kernel/head.o
+-arch/arm64/kernel/head.o
+ arch/csky/kernel/head.o
+ arch/hexagon/kernel/head.o
+ arch/ia64/kernel/head.o
diff --git a/queue-6.1/powerpc-vmlinux.lds-define-runtime_discard_exit.patch b/queue-6.1/powerpc-vmlinux.lds-define-runtime_discard_exit.patch
new file mode 100644 (file)
index 0000000..f99b75a
--- /dev/null
@@ -0,0 +1,55 @@
+From 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 Mon Sep 17 00:00:00 2001
+From: Michael Ellerman <mpe@ellerman.id.au>
+Date: Thu, 5 Jan 2023 22:05:04 +1100
+Subject: powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
+
+From: Michael Ellerman <mpe@ellerman.id.au>
+
+commit 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 upstream.
+
+The powerpc linker script explicitly includes .exit.text, because
+otherwise the link fails due to references from __bug_table and
+__ex_table. The code is freed (discarded) at runtime along with
+.init.text and data.
+
+That has worked in the past despite powerpc not defining
+RUNTIME_DISCARD_EXIT because DISCARDS appears late in the powerpc linker
+script (line 410), and the explicit inclusion of .exit.text
+earlier (line 280) supersedes the discard.
+
+However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
+riscv") introduced an earlier use of DISCARD as part of the RO_DATA
+macro (line 136). With binutils < 2.36 that causes the DISCARD
+directives later in the script to be applied earlier [1], causing
+.exit.text to actually be discarded at link time, leading to build
+errors:
+
+  '.exit.text' referenced in section '__bug_table' of crypto/algboss.o: defined in
+  discarded section '.exit.text' of crypto/algboss.o
+  '.exit.text' referenced in section '__ex_table' of drivers/nvdimm/core.o: defined in
+  discarded section '.exit.text' of drivers/nvdimm/core.o
+
+Fix it by defining RUNTIME_DISCARD_EXIT, which causes the generic
+DISCARDS macro to not include .exit.text at all.
+
+1: https://lore.kernel.org/lkml/87fscp2v7k.fsf@igel.home/
+
+Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20230105132349.384666-1-mpe@ellerman.id.au
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/powerpc/kernel/vmlinux.lds.S |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/kernel/vmlinux.lds.S
++++ b/arch/powerpc/kernel/vmlinux.lds.S
+@@ -8,6 +8,7 @@
+ #define BSS_FIRST_SECTIONS *(.bss.prominit)
+ #define EMITS_PT_NOTE
+ #define RO_EXCEPTION_TABLE_ALIGN      0
++#define RUNTIME_DISCARD_EXIT
+ #define SOFT_MASK_TABLE(align)                                                \
+       . = ALIGN(align);                                               \
diff --git a/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch b/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
new file mode 100644 (file)
index 0000000..449c819
--- /dev/null
@@ -0,0 +1,54 @@
+From 07b050f9290ee012a407a0f64151db902a1520f5 Mon Sep 17 00:00:00 2001
+From: Michael Ellerman <mpe@ellerman.id.au>
+Date: Thu, 5 Jan 2023 22:28:36 +1100
+Subject: powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
+
+From: Michael Ellerman <mpe@ellerman.id.au>
+
+commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream.
+
+Relocatable kernels must not discard relocations, they need to be
+processed at runtime. As such they are included for CONFIG_RELOCATABLE
+builds in the powerpc linker script (line 340).
+
+However they are also unconditionally discarded later in the
+script (line 414). Previously that worked because the earlier inclusion
+superseded the discard.
+
+However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
+riscv") introduced an earlier use of DISCARD as part of the RO_DATA
+macro (line 137). With binutils < 2.36 that causes the DISCARD
+directives later in the script to be applied earlier, causing .rela* to
+actually be discarded at link time, leading to build warnings and a
+kernel that doesn't boot:
+
+  ld: warning: discarding dynamic section .rela.init.rodata
+
+Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE
+is disabled.
+
+Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20230105132349.384666-2-mpe@ellerman.id.au
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+---
+ arch/powerpc/kernel/vmlinux.lds.S |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/arch/powerpc/kernel/vmlinux.lds.S
++++ b/arch/powerpc/kernel/vmlinux.lds.S
+@@ -411,9 +411,12 @@ SECTIONS
+       DISCARDS
+       /DISCARD/ : {
+               *(*.EMB.apuinfo)
+-              *(.glink .iplt .plt .rela* .comment)
++              *(.glink .iplt .plt .comment)
+               *(.gnu.version*)
+               *(.gnu.attributes)
+               *(.eh_frame)
++#ifndef CONFIG_RELOCATABLE
++              *(.rela*)
++#endif
+       }
+ }
diff --git a/queue-6.1/riscv-remove-special-treatment-for-the-link-order-of-head.o.patch b/queue-6.1/riscv-remove-special-treatment-for-the-link-order-of-head.o.patch
new file mode 100644 (file)
index 0000000..1db0151
--- /dev/null
@@ -0,0 +1,35 @@
+From 2348e6bf44213c5f447ff698e43c089185241ed7 Mon Sep 17 00:00:00 2001
+From: Jisheng Zhang <jszhang@kernel.org>
+Date: Tue, 18 Oct 2022 22:12:00 +0800
+Subject: riscv: remove special treatment for the link order of head.o
+
+From: Jisheng Zhang <jszhang@kernel.org>
+
+commit 2348e6bf44213c5f447ff698e43c089185241ed7 upstream.
+
+arch/riscv/kernel/head.o does not need any special treatment - the only
+requirement is the ".head.text" section must be placed before the
+normal ".text" section.
+
+The linker script does the right thing to do. The build system does
+not need to manipulate the link order of head.o.
+
+Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
+Link: https://lore.kernel.org/r/20221018141200.1040-1-jszhang@kernel.org
+Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/head-object-list.txt |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/scripts/head-object-list.txt
++++ b/scripts/head-object-list.txt
+@@ -39,7 +39,6 @@ arch/powerpc/kernel/entry_64.o
+ arch/powerpc/kernel/fpu.o
+ arch/powerpc/kernel/vector.o
+ arch/powerpc/kernel/prom_init.o
+-arch/riscv/kernel/head.o
+ arch/s390/kernel/head64.o
+ arch/sh/kernel/head_32.o
+ arch/sparc/kernel/head_32.o
diff --git a/queue-6.1/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch b/queue-6.1/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
new file mode 100644 (file)
index 0000000..ffceaae
--- /dev/null
@@ -0,0 +1,70 @@
+From a494398bde273143c2352dd373cad8211f7d94b2 Mon Sep 17 00:00:00 2001
+From: Masahiro Yamada <masahiroy@kernel.org>
+Date: Thu, 5 Jan 2023 12:13:06 +0900
+Subject: s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
+
+From: Masahiro Yamada <masahiroy@kernel.org>
+
+commit a494398bde273143c2352dd373cad8211f7d94b2 upstream.
+
+Nathan Chancellor reports that the s390 vmlinux fails to link with
+GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID
+for arm64 and riscv").
+
+It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y.
+
+  $ s390x-linux-gnu-ld --version | head -n1
+  GNU ld (GNU Binutils for Debian) 2.35.2
+  $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig
+  $ ./scripts/config -e CONFIG_EXPOLINE
+  $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig
+  $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu-
+  `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o
+  make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
+  make: *** [Makefile:1252: vmlinux] Error 2
+
+arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT:
+
+        .exit.text : {
+                EXIT_TEXT
+        }
+
+But, at the same time, EXIT_TEXT is thrown away by DISCARD because
+s390 does not define RUNTIME_DISCARD_EXIT.
+
+I still do not understand why the latter wins after 99cb0d917ffa,
+but defining RUNTIME_DISCARD_EXIT seems correct because the comment
+line in arch/s390/kernel/vmlinux.lds.S says:
+
+        /*
+         * .exit.text is discarded at runtime, not link time,
+         * to deal with references from __bug_table
+         */
+
+Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output
+sections in scripts") cured this issue, so we cannot reproduce it with
+binutils 2.36+, but it is better to not rely on it.
+
+Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
+Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/
+Reported-by: Nathan Chancellor <nathan@kernel.org>
+Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
+Link: https://lore.kernel.org/r/20230105031306.1455409-1-masahiroy@kernel.org
+Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/s390/kernel/vmlinux.lds.S |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/s390/kernel/vmlinux.lds.S
++++ b/arch/s390/kernel/vmlinux.lds.S
+@@ -17,6 +17,8 @@
+ /* Handle ro_after_init data on our own. */
+ #define RO_AFTER_INIT_DATA
++#define RUNTIME_DISCARD_EXIT
++
+ #define EMITS_PT_NOTE
+ #include <asm-generic/vmlinux.lds.h>
index 416a9d0af59569fae15b8b5d0daea622622cfc53..23498bc367b4062d7f1503cf74146328d31a5f41 100644 (file)
@@ -33,3 +33,10 @@ x86-alternatives-introduce-int3_emulate_jcc.patch
 x86-alternatives-teach-text_poke_bp-to-patch-jcc.d32-instructions.patch
 x86-static_call-add-support-for-jcc-tail-calls.patch
 bluetooth-btusb-add-more-device-ids-for-wcn6855.patch
+riscv-remove-special-treatment-for-the-link-order-of-head.o.patch
+arm64-remove-special-treatment-for-the-link-order-of-head.o.patch
+arch-fix-broken-buildid-for-arm64-and-riscv.patch
+powerpc-vmlinux.lds-define-runtime_discard_exit.patch
+powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
+s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
+sh-define-runtime_discard_exit.patch
diff --git a/queue-6.1/sh-define-runtime_discard_exit.patch b/queue-6.1/sh-define-runtime_discard_exit.patch
new file mode 100644 (file)
index 0000000..f0997f1
--- /dev/null
@@ -0,0 +1,84 @@
+From c1c551bebf928889e7a8fef7415b44f9a64975f4 Mon Sep 17 00:00:00 2001
+From: Tom Saeger <tom.saeger@oracle.com>
+Date: Mon, 23 Jan 2023 17:09:35 -0700
+Subject: sh: define RUNTIME_DISCARD_EXIT
+
+From: Tom Saeger <tom.saeger@oracle.com>
+
+commit c1c551bebf928889e7a8fef7415b44f9a64975f4 upstream.
+
+sh vmlinux fails to link with GNU ld < 2.40 (likely < 2.36) since
+commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv").
+
+This is similar to fixes for powerpc and s390:
+commit 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT").
+commit a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error
+with GNU ld < 2.36").
+
+  $ sh4-linux-gnu-ld --version | head -n1
+  GNU ld (GNU Binutils for Debian) 2.35.2
+
+  $ make ARCH=sh CROSS_COMPILE=sh4-linux-gnu- microdev_defconfig
+  $ make ARCH=sh CROSS_COMPILE=sh4-linux-gnu-
+
+  `.exit.text' referenced in section `__bug_table' of crypto/algboss.o:
+  defined in discarded section `.exit.text' of crypto/algboss.o
+  `.exit.text' referenced in section `__bug_table' of
+  drivers/char/hw_random/core.o: defined in discarded section
+  `.exit.text' of drivers/char/hw_random/core.o
+  make[2]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
+  make[1]: *** [Makefile:1252: vmlinux] Error 2
+
+arch/sh/kernel/vmlinux.lds.S keeps EXIT_TEXT:
+
+       /*
+        * .exit.text is discarded at runtime, not link time, to deal with
+        * references from __bug_table
+        */
+       .exit.text : AT(ADDR(.exit.text)) { EXIT_TEXT }
+
+However, EXIT_TEXT is thrown away by
+DISCARD(include/asm-generic/vmlinux.lds.h) because
+sh does not define RUNTIME_DISCARD_EXIT.
+
+GNU ld 2.40 does not have this issue and builds fine.
+This corresponds with Masahiro's comments in a494398bde27:
+"Nathan [Chancellor] also found that binutils
+commit 21401fc7bf67 ("Duplicate output sections in scripts") cured this
+issue, so we cannot reproduce it with binutils 2.36+, but it is better
+to not rely on it."
+
+Link: https://lkml.kernel.org/r/9166a8abdc0f979e50377e61780a4bba1dfa2f52.1674518464.git.tom.saeger@oracle.com
+Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
+Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/
+Link: https://lore.kernel.org/all/20230123194218.47ssfzhrpnv3xfez@oracle.com/
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
+Cc: Ard Biesheuvel <ardb@kernel.org>
+Cc: Arnd Bergmann <arnd@arndb.de>
+Cc: Christoph Hellwig <hch@lst.de>
+Cc: Dennis Gilmore <dennis@ausil.us>
+Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Masahiro Yamada <masahiroy@kernel.org>
+Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
+Cc: Nathan Chancellor <nathan@kernel.org>
+Cc: Palmer Dabbelt <palmer@rivosinc.com>
+Cc: Rich Felker <dalias@libc.org>
+Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/sh/kernel/vmlinux.lds.S |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/sh/kernel/vmlinux.lds.S
++++ b/arch/sh/kernel/vmlinux.lds.S
+@@ -4,6 +4,7 @@
+  * Written by Niibe Yutaka and Paul Mundt
+  */
+ OUTPUT_ARCH(sh)
++#define RUNTIME_DISCARD_EXIT
+ #include <asm/thread_info.h>
+ #include <asm/cache.h>
+ #include <asm/vmlinux.lds.h>