+++ /dev/null
-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")
-Cc: Tom Saeger <tom.saeger@oracle.com>
-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: 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
-@@ -906,7 +906,12 @@
- #define TRACEDATA
- #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.*)) \
+++ /dev/null
-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: 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
-
- #include <asm/page.h>
- #include <asm-generic/vmlinux.lds.h>
+++ /dev/null
-From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001
-From: Michael Ellerman <mpe@ellerman.id.au>
-Date: Thu, 5 Jan 2023 22:42:59 +1100
-Subject: powerpc/vmlinux.lds: Don't discard .comment
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream.
-
-Although the powerpc linker script mentions .comment in the DISCARD
-section, that has never actually caused it to be discarded, because the
-earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes
-.comment.
-
-However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
-riscv") introduced an earlier use of DISCARD as part of the RO_DATA
-macro. With binutils < 2.36 that causes the DISCARD directives later in
-the script to be applied earlier, causing .comment to actually be
-discarded.
-
-It's confusing to explicitly include and discard .comment, and even more
-so if the behaviour depends on the toolchain version. So don't discard
-.comment in order to maintain the existing behaviour in all cases.
-
-Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/powerpc/kernel/vmlinux.lds.S | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/vmlinux.lds.S
-+++ b/arch/powerpc/kernel/vmlinux.lds.S
-@@ -379,7 +379,7 @@ SECTIONS
- DISCARDS
- /DISCARD/ : {
- *(*.EMB.apuinfo)
-- *(.glink .iplt .plt .comment)
-+ *(.glink .iplt .plt)
- *(.gnu.version*)
- *(.gnu.attributes)
- *(.eh_frame)
+++ /dev/null
-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>
----
- 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
-@@ -379,9 +379,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
- }
- }
+++ /dev/null
-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: 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
-@@ -15,6 +15,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>
revert-drm-amdgpu-make-display-pinning-more-flexible-v2.patch
x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch
tracing-use-alignof__-struct-type-b-instead-of-offsetof.patch
-arch-fix-broken-buildid-for-arm64-and-riscv.patch
-s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
-powerpc-vmlinux.lds-define-runtime_discard_exit.patch
-powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
-powerpc-vmlinux.lds-don-t-discard-.comment.patch
io_uring-io_kiocb_update_pos-should-not-touch-file-for-non-1-offset.patch
io_uring-net-fix-fast_iov-assignment-in-io_setup_async_msg.patch
net-ulp-use-consistent-error-code-when-blocking-ulp.patch
+++ /dev/null
-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")
-Cc: Tom Saeger <tom.saeger@oracle.com>
-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: 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
-@@ -903,7 +903,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.*)) \
+++ /dev/null
-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: 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); \
+++ /dev/null
-From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001
-From: Michael Ellerman <mpe@ellerman.id.au>
-Date: Thu, 5 Jan 2023 22:42:59 +1100
-Subject: powerpc/vmlinux.lds: Don't discard .comment
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream.
-
-Although the powerpc linker script mentions .comment in the DISCARD
-section, that has never actually caused it to be discarded, because the
-earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes
-.comment.
-
-However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
-riscv") introduced an earlier use of DISCARD as part of the RO_DATA
-macro. With binutils < 2.36 that causes the DISCARD directives later in
-the script to be applied earlier, causing .comment to actually be
-discarded.
-
-It's confusing to explicitly include and discard .comment, and even more
-so if the behaviour depends on the toolchain version. So don't discard
-.comment in order to maintain the existing behaviour in all cases.
-
-Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/powerpc/kernel/vmlinux.lds.S | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/vmlinux.lds.S
-+++ b/arch/powerpc/kernel/vmlinux.lds.S
-@@ -400,7 +400,7 @@ SECTIONS
- DISCARDS
- /DISCARD/ : {
- *(*.EMB.apuinfo)
-- *(.glink .iplt .plt .comment)
-+ *(.glink .iplt .plt)
- *(.gnu.version*)
- *(.gnu.attributes)
- *(.eh_frame)
+++ /dev/null
-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>
----
- 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
-@@ -400,9 +400,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
- }
- }
+++ /dev/null
-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: 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>
revert-drm-amdgpu-make-display-pinning-more-flexible-v2.patch
x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch
tracing-use-alignof__-struct-type-b-instead-of-offsetof.patch
-arch-fix-broken-buildid-for-arm64-and-riscv.patch
-s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
-powerpc-vmlinux.lds-define-runtime_discard_exit.patch
-powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
-powerpc-vmlinux.lds-don-t-discard-.comment.patch
io_uring-io_kiocb_update_pos-should-not-touch-file-for-non-1-offset.patch
io_uring-net-fix-fast_iov-assignment-in-io_setup_async_msg.patch
net-ulp-use-consistent-error-code-when-blocking-ulp.patch
+++ /dev/null
-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")
-Cc: Tom Saeger <tom.saeger@oracle.com>
-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: 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
-@@ -825,7 +825,12 @@
- #define TRACEDATA
- #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.*)) \
+++ /dev/null
-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: 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
-@@ -6,6 +6,7 @@
- #endif
-
- #define BSS_FIRST_SECTIONS *(.bss.prominit)
-+#define RUNTIME_DISCARD_EXIT
-
- #include <asm/page.h>
- #include <asm-generic/vmlinux.lds.h>
+++ /dev/null
-From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001
-From: Michael Ellerman <mpe@ellerman.id.au>
-Date: Thu, 5 Jan 2023 22:42:59 +1100
-Subject: powerpc/vmlinux.lds: Don't discard .comment
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream.
-
-Although the powerpc linker script mentions .comment in the DISCARD
-section, that has never actually caused it to be discarded, because the
-earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes
-.comment.
-
-However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
-riscv") introduced an earlier use of DISCARD as part of the RO_DATA
-macro. With binutils < 2.36 that causes the DISCARD directives later in
-the script to be applied earlier, causing .comment to actually be
-discarded.
-
-It's confusing to explicitly include and discard .comment, and even more
-so if the behaviour depends on the toolchain version. So don't discard
-.comment in order to maintain the existing behaviour in all cases.
-
-Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/powerpc/kernel/vmlinux.lds.S | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/vmlinux.lds.S
-+++ b/arch/powerpc/kernel/vmlinux.lds.S
-@@ -395,7 +395,7 @@ SECTIONS
- DISCARDS
- /DISCARD/ : {
- *(*.EMB.apuinfo)
-- *(.glink .iplt .plt .comment)
-+ *(.glink .iplt .plt)
- *(.gnu.version*)
- *(.gnu.attributes)
- *(.eh_frame)
+++ /dev/null
-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>
----
- 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
-@@ -395,9 +395,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
- }
- }
+++ /dev/null
-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: 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
-@@ -15,6 +15,8 @@
- /* Handle ro_after_init data on our own. */
- #define RO_AFTER_INIT_DATA
-
-+#define RUNTIME_DISCARD_EXIT
-+
- #include <asm-generic/vmlinux.lds.h>
- #include <asm/vmlinux.lds.h>
-
drm-amd-display-fix-set-scaling-doesn-s-work.patch
drm-amd-display-fix-color_space_ycbcr2020_type-matrix.patch
x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch
-arch-fix-broken-buildid-for-arm64-and-riscv.patch
-s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
-powerpc-vmlinux.lds-define-runtime_discard_exit.patch
-powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
-powerpc-vmlinux.lds-don-t-discard-.comment.patch
+++ /dev/null
-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: 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.*)) \
+++ /dev/null
-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: 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); \
+++ /dev/null
-From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001
-From: Michael Ellerman <mpe@ellerman.id.au>
-Date: Thu, 5 Jan 2023 22:42:59 +1100
-Subject: powerpc/vmlinux.lds: Don't discard .comment
-
-From: Michael Ellerman <mpe@ellerman.id.au>
-
-commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream.
-
-Although the powerpc linker script mentions .comment in the DISCARD
-section, that has never actually caused it to be discarded, because the
-earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes
-.comment.
-
-However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
-riscv") introduced an earlier use of DISCARD as part of the RO_DATA
-macro. With binutils < 2.36 that causes the DISCARD directives later in
-the script to be applied earlier, causing .comment to actually be
-discarded.
-
-It's confusing to explicitly include and discard .comment, and even more
-so if the behaviour depends on the toolchain version. So don't discard
-.comment in order to maintain the existing behaviour in all cases.
-
-Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections")
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/powerpc/kernel/vmlinux.lds.S | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/arch/powerpc/kernel/vmlinux.lds.S
-+++ b/arch/powerpc/kernel/vmlinux.lds.S
-@@ -411,7 +411,7 @@ SECTIONS
- DISCARDS
- /DISCARD/ : {
- *(*.EMB.apuinfo)
-- *(.glink .iplt .plt .comment)
-+ *(.glink .iplt .plt)
- *(.gnu.version*)
- *(.gnu.attributes)
- *(.eh_frame)
+++ /dev/null
-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>
----
- 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
- }
- }
+++ /dev/null
-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: 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>
docs-fix-path-paste-o-for-sys-kernel-warn_count.patch
exit-use-read_once-for-all-oops-warn-limit-reads.patch
x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch
-arch-fix-broken-buildid-for-arm64-and-riscv.patch
drm-amdgpu-discovery-enable-soc21-common-for-gc-11.0.4.patch
drm-amdgpu-discovery-enable-gmc-v11-for-gc-11.0.4.patch
drm-amdgpu-discovery-enable-gfx-v11-for-gc-11.0.4.patch
drm-amdgpu-add-tmz-support-for-gc-11.0.1.patch
drm-amdgpu-add-tmz-support-for-gc-ip-v11.0.4.patch
drm-amdgpu-correct-mec-number-for-gfx11-apus.patch
-s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch
-powerpc-vmlinux.lds-define-runtime_discard_exit.patch
-powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch
-powerpc-vmlinux.lds-don-t-discard-.comment.patch
octeontx2-pf-avoid-use-of-gfp_kernel-in-atomic-context.patch
net-ulp-use-consistent-error-code-when-blocking-ulp.patch
octeontx2-pf-fix-the-use-of-gfp_kernel-in-atomic-context-on-rt.patch