stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y
@ 2023-02-10 20:20 Tom Saeger
  2023-02-10 20:20 ` [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS Tom Saeger
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh, H.J. Lu,
	Borislav Petkov, Kees Cook, Michael Ellerman, Heiko Carstens,
	Christoph Hellwig, Yoshinori Sato

Build ID is missing for arm64 with CONFIG_MODVERSIONS=y using ld >= 2.36
on 5.4, 5.10, and 5.15

Backport BuildID fixes.

I've build tested this on {x86_64, arm64, riscv, powerpc, s390, sh}.

  # view Build ID
  $ readelf -n vmlinux | grep "Build ID"

Changes for v2:
- rebase 6/6 c1c551bebf92 ("sh: define RUNTIME_DISCARD_EXIT") from upstream

Previous threads:
[1] https://lore.kernel.org/all/cover.1674588616.git.tom.saeger@oracle.com/
[2] https://lore.kernel.org/all/3df32572ec7016e783d37e185f88495831671f5d.1671143628.git.tom.saeger@oracle.com/
[3] https://lore.kernel.org/all/cover.1670358255.git.tom.saeger@oracle.com/

Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
---
H.J. Lu (1):
      x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS

Masahiro Yamada (2):
      arch: fix broken BuildID for arm64 and riscv
      s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36

Michael Ellerman (2):
      powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
      powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds

Tom Saeger (1):
      sh: define RUNTIME_DISCARD_EXIT

 arch/powerpc/kernel/vmlinux.lds.S |  6 +++++-
 arch/s390/kernel/vmlinux.lds.S    |  2 ++
 arch/sh/kernel/vmlinux.lds.S      |  1 +
 arch/x86/kernel/vmlinux.lds.S     |  1 +
 include/asm-generic/vmlinux.lds.h | 16 ++++++++++++++--
 5 files changed, 23 insertions(+), 3 deletions(-)
---
base-commit: 59342376e8f0c704299dc7a2c14fed07ffb962e2
change-id: 20230210-tsaeger-upstream-linux-stable-5-4-07f93e88c218

Best regards,
-- 
Tom Saeger <tom.saeger@oracle.com>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
  2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
@ 2023-02-10 20:20 ` Tom Saeger
  2023-02-23  9:50   ` Greg Kroah-Hartman
  2023-02-10 20:20 ` [PATCH 5.4 v2 2/6] arch: fix broken BuildID for arm64 and riscv Tom Saeger
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh, H.J. Lu,
	Borislav Petkov, Kees Cook

From: "H.J. Lu" <hjl.tools@gmail.com>

commit 84d5f77fc2ee4e010c2c037750e32f06e55224b0 upstream.

In the x86 kernel, .exit.text and .exit.data sections are discarded at
runtime, not by the linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS
and define it in the x86 kernel linker script to keep them.

The sections are added before the DISCARD directive so document here
only the situation explicitly as this change doesn't have any effect on
the generated kernel. Also, other architectures like ARM64 will use it
too so generalize the approach with the RUNTIME_DISCARD_EXIT define.

 [ bp: Massage and extend commit message. ]

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com
Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
---
 arch/x86/kernel/vmlinux.lds.S     |  1 +
 include/asm-generic/vmlinux.lds.h | 11 +++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 1afe211d7a7c..0ae3cd9a25ea 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -21,6 +21,7 @@
 #define LOAD_OFFSET __START_KERNEL_map
 #endif
 
+#define RUNTIME_DISCARD_EXIT
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index c3bcac22c389..2d45d98773e2 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -900,10 +900,17 @@
  * section definitions so that such archs put those in earlier section
  * definitions.
  */
+#ifdef RUNTIME_DISCARD_EXIT
+#define EXIT_DISCARDS
+#else
+#define EXIT_DISCARDS							\
+	EXIT_TEXT							\
+	EXIT_DATA
+#endif
+
 #define DISCARDS							\
 	/DISCARD/ : {							\
-	EXIT_TEXT							\
-	EXIT_DATA							\
+	EXIT_DISCARDS							\
 	EXIT_CALL							\
 	*(.discard)							\
 	*(.discard.*)							\

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 2/6] arch: fix broken BuildID for arm64 and riscv
  2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
  2023-02-10 20:20 ` [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS Tom Saeger
@ 2023-02-10 20:20 ` Tom Saeger
  2023-02-10 20:20 ` [PATCH 5.4 v2 3/6] powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT Tom Saeger
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh

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>
---
 include/asm-generic/vmlinux.lds.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 2d45d98773e2..a68535f36d13 100644
--- 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.*))					\

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 3/6] powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
  2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
  2023-02-10 20:20 ` [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS Tom Saeger
  2023-02-10 20:20 ` [PATCH 5.4 v2 2/6] arch: fix broken BuildID for arm64 and riscv Tom Saeger
@ 2023-02-10 20:20 ` Tom Saeger
  2023-02-10 20:38 ` [PATCH 5.4 v2 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds Tom Saeger
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh,
	Michael Ellerman

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>
---
 arch/powerpc/kernel/vmlinux.lds.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 3ea360cad337..4d5e1662a0ba 100644
--- 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>

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
  2023-02-10 20:38 ` [PATCH 5.4 v2 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds Tom Saeger
@ 2023-02-10 20:20   ` Tom Saeger
  0 siblings, 0 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh,
	Michael Ellerman

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: Tom Saeger <tom.saeger@oracle.com>
---
 arch/powerpc/kernel/vmlinux.lds.S | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 4d5e1662a0ba..46dfb3701c6e 100644
--- 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
 	}
 }

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
  2023-02-10 20:39 ` [PATCH 5.4 v2 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 Tom Saeger
@ 2023-02-10 20:20   ` Tom Saeger
  0 siblings, 0 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh, Heiko Carstens

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>
---
 arch/s390/kernel/vmlinux.lds.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 4df41695caec..a471bd480397 100644
--- 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>
 

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 6/6] sh: define RUNTIME_DISCARD_EXIT
  2023-02-10 20:39 ` [PATCH 5.4 v2 6/6] sh: define RUNTIME_DISCARD_EXIT Tom Saeger
@ 2023-02-10 20:20   ` Tom Saeger
  0 siblings, 0 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh,
	Christoph Hellwig, Yoshinori Sato

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>
---
 arch/sh/kernel/vmlinux.lds.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S
index 77a59d8c6b4d..ec3bae172b20 100644
--- a/arch/sh/kernel/vmlinux.lds.S
+++ b/arch/sh/kernel/vmlinux.lds.S
@@ -10,6 +10,7 @@ OUTPUT_ARCH(sh:sh5)
 #define LOAD_OFFSET	0
 OUTPUT_ARCH(sh)
 #endif
+#define RUNTIME_DISCARD_EXIT
 
 #include <asm/thread_info.h>
 #include <asm/cache.h>

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
  2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
                   ` (2 preceding siblings ...)
  2023-02-10 20:20 ` [PATCH 5.4 v2 3/6] powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT Tom Saeger
@ 2023-02-10 20:38 ` Tom Saeger
  2023-02-10 20:20   ` Tom Saeger
  2023-02-10 20:39 ` [PATCH 5.4 v2 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 Tom Saeger
  2023-02-10 20:39 ` [PATCH 5.4 v2 6/6] sh: define RUNTIME_DISCARD_EXIT Tom Saeger
  5 siblings, 1 reply; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:38 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh,
	Michael Ellerman

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: Tom Saeger <tom.saeger@oracle.com>
---
 arch/powerpc/kernel/vmlinux.lds.S | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 4d5e1662a0ba..46dfb3701c6e 100644
--- 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
 	}
 }

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
  2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
                   ` (3 preceding siblings ...)
  2023-02-10 20:38 ` [PATCH 5.4 v2 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds Tom Saeger
@ 2023-02-10 20:39 ` Tom Saeger
  2023-02-10 20:20   ` Tom Saeger
  2023-02-10 20:39 ` [PATCH 5.4 v2 6/6] sh: define RUNTIME_DISCARD_EXIT Tom Saeger
  5 siblings, 1 reply; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:39 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh, Heiko Carstens

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>
---
 arch/s390/kernel/vmlinux.lds.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 4df41695caec..a471bd480397 100644
--- 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>
 

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5.4 v2 6/6] sh: define RUNTIME_DISCARD_EXIT
  2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
                   ` (4 preceding siblings ...)
  2023-02-10 20:39 ` [PATCH 5.4 v2 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 Tom Saeger
@ 2023-02-10 20:39 ` Tom Saeger
  2023-02-10 20:20   ` Tom Saeger
  5 siblings, 1 reply; 12+ messages in thread
From: Tom Saeger @ 2023-02-10 20:39 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	Tom Saeger, stable, linux-kernel, linux-arch, linux-arm-kernel,
	linux-riscv, linuxppc-dev, linux-s390, linux-sh,
	Christoph Hellwig, Yoshinori Sato

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>
---
 arch/sh/kernel/vmlinux.lds.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S
index 77a59d8c6b4d..ec3bae172b20 100644
--- a/arch/sh/kernel/vmlinux.lds.S
+++ b/arch/sh/kernel/vmlinux.lds.S
@@ -10,6 +10,7 @@ OUTPUT_ARCH(sh:sh5)
 #define LOAD_OFFSET	0
 OUTPUT_ARCH(sh)
 #endif
+#define RUNTIME_DISCARD_EXIT
 
 #include <asm/thread_info.h>
 #include <asm/cache.h>

-- 
2.39.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
  2023-02-10 20:20 ` [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS Tom Saeger
@ 2023-02-23  9:50   ` Greg Kroah-Hartman
  2023-02-23 19:08     ` Tom Saeger
  0 siblings, 1 reply; 12+ messages in thread
From: Greg Kroah-Hartman @ 2023-02-23  9:50 UTC (permalink / raw)
  To: Tom Saeger
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	stable, linux-kernel, linux-arch, linux-arm-kernel, linux-riscv,
	linuxppc-dev, linux-s390, linux-sh, H.J. Lu, Borislav Petkov,
	Kees Cook

On Fri, Feb 10, 2023 at 01:20:22PM -0700, Tom Saeger wrote:
> From: "H.J. Lu" <hjl.tools@gmail.com>
> 
> commit 84d5f77fc2ee4e010c2c037750e32f06e55224b0 upstream.
> 
> In the x86 kernel, .exit.text and .exit.data sections are discarded at
> runtime, not by the linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS
> and define it in the x86 kernel linker script to keep them.
> 
> The sections are added before the DISCARD directive so document here
> only the situation explicitly as this change doesn't have any effect on
> the generated kernel. Also, other architectures like ARM64 will use it
> too so generalize the approach with the RUNTIME_DISCARD_EXIT define.
> 
>  [ bp: Massage and extend commit message. ]
> 
> Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Reviewed-by: Kees Cook <keescook@chromium.org>
> Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com
> Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
> ---
>  arch/x86/kernel/vmlinux.lds.S     |  1 +
>  include/asm-generic/vmlinux.lds.h | 11 +++++++++--
>  2 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
> index 1afe211d7a7c..0ae3cd9a25ea 100644
> --- a/arch/x86/kernel/vmlinux.lds.S
> +++ b/arch/x86/kernel/vmlinux.lds.S
> @@ -21,6 +21,7 @@
>  #define LOAD_OFFSET __START_KERNEL_map
>  #endif
>  
> +#define RUNTIME_DISCARD_EXIT
>  #include <asm-generic/vmlinux.lds.h>
>  #include <asm/asm-offsets.h>
>  #include <asm/thread_info.h>

Does this backport look correct from a style point-of-view?

Hint, extra blank line needed after the define, like what is done in the
original...

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
  2023-02-23  9:50   ` Greg Kroah-Hartman
@ 2023-02-23 19:08     ` Tom Saeger
  0 siblings, 0 replies; 12+ messages in thread
From: Tom Saeger @ 2023-02-23 19:08 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Sasha Levin, Naresh Kamboju, John Paul Adrian Glaubitz,
	Rich Felker, Masahiro Yamada, Ard Biesheuvel, Nathan Chancellor,
	Dennis Gilmore, Palmer Dabbelt, Arnd Bergmann, Andrew Morton,
	stable, linux-kernel, linux-arch, linux-arm-kernel, linux-riscv,
	linuxppc-dev, linux-s390, linux-sh, H.J. Lu, Borislav Petkov,
	Kees Cook

[-- Attachment #1: Type: text/plain, Size: 2241 bytes --]

On Thu, Feb 23, 2023 at 10:50:22AM +0100, Greg Kroah-Hartman wrote:
> On Fri, Feb 10, 2023 at 01:20:22PM -0700, Tom Saeger wrote:
> > From: "H.J. Lu" <hjl.tools@gmail.com>
> > 
> > commit 84d5f77fc2ee4e010c2c037750e32f06e55224b0 upstream.
> > 
> > In the x86 kernel, .exit.text and .exit.data sections are discarded at
> > runtime, not by the linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS
> > and define it in the x86 kernel linker script to keep them.
> > 
> > The sections are added before the DISCARD directive so document here
> > only the situation explicitly as this change doesn't have any effect on
> > the generated kernel. Also, other architectures like ARM64 will use it
> > too so generalize the approach with the RUNTIME_DISCARD_EXIT define.
> > 
> >  [ bp: Massage and extend commit message. ]
> > 
> > Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> > Signed-off-by: Borislav Petkov <bp@suse.de>
> > Reviewed-by: Kees Cook <keescook@chromium.org>
> > Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com
> > Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
> > ---
> >  arch/x86/kernel/vmlinux.lds.S     |  1 +
> >  include/asm-generic/vmlinux.lds.h | 11 +++++++++--
> >  2 files changed, 10 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
> > index 1afe211d7a7c..0ae3cd9a25ea 100644
> > --- a/arch/x86/kernel/vmlinux.lds.S
> > +++ b/arch/x86/kernel/vmlinux.lds.S
> > @@ -21,6 +21,7 @@
> >  #define LOAD_OFFSET __START_KERNEL_map
> >  #endif
> >  
> > +#define RUNTIME_DISCARD_EXIT
> >  #include <asm-generic/vmlinux.lds.h>
> >  #include <asm/asm-offsets.h>
> >  #include <asm/thread_info.h>
> 
> Does this backport look correct from a style point-of-view?

I debated about this.

> 
> Hint, extra blank line needed after the define, like what is done in the
> original...

I did check, truly.  See attached git-cherry-vimdiff

I show the blank line introduced here (which isn't in 5.4.y):
441110a547f8 ("vmlinux.lds.h: Provide EMIT_PT_NOTE to indicate export of .notes")

And wasn't sure whether to stay with the original or add a blank.
I chose the former.
I chose wrong.
Now I know.

Cheers,

--Tom

> 
> thanks,
> 
> greg k-h

[-- Attachment #2: git-cherry-vimdiff --]
[-- Type: text/plain, Size: 644 bytes --]

#!/usr/bin/env bash
# Given a git hash ($1),
# use vimdiff to compare given commit to commit it was cherry-picked from.
#
# Author: Tom Saeger <tom.saeger@gmail.com>
# 6/21/2017

FIRST=${1:-$(tig-pick)}
SECOND=${2:-$(git show --format=email "${FIRST}" | sed -ne '/cherry picked/{s/.*commit \([0-9a-z]\+\).*/\1/;p;q;}')}

# if not "cherry picked" find first line with "commit"
if test -z "${SECOND}" ; then
SECOND=$(git show --format=email "${FIRST}" | sed -ne '/commit /{s/.*commit \([0-9a-z]\+\).*/\1/;p;q;}')
fi

if test -z "${SECOND}" ; then
    exit 0;
fi
vim -d <(git show --format=email "${FIRST}") <(git show --format=email "${SECOND}")

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-02-23 19:10 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-10 20:20 [PATCH 5.4 v2 0/6] Fix Build ID on arm64 if CONFIG_MODVERSIONS=y Tom Saeger
2023-02-10 20:20 ` [PATCH 5.4 v2 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS Tom Saeger
2023-02-23  9:50   ` Greg Kroah-Hartman
2023-02-23 19:08     ` Tom Saeger
2023-02-10 20:20 ` [PATCH 5.4 v2 2/6] arch: fix broken BuildID for arm64 and riscv Tom Saeger
2023-02-10 20:20 ` [PATCH 5.4 v2 3/6] powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT Tom Saeger
2023-02-10 20:38 ` [PATCH 5.4 v2 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds Tom Saeger
2023-02-10 20:20   ` Tom Saeger
2023-02-10 20:39 ` [PATCH 5.4 v2 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 Tom Saeger
2023-02-10 20:20   ` Tom Saeger
2023-02-10 20:39 ` [PATCH 5.4 v2 6/6] sh: define RUNTIME_DISCARD_EXIT Tom Saeger
2023-02-10 20:20   ` Tom Saeger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).