diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2023-01-23 22:50:32 +0100 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2023-01-25 20:51:10 +0100 |
commit | e9c9cb90e76ffaabcc7ca8f275d9e82195fd6367 (patch) | |
tree | f0cc7a77ae0af7ce42fed33c6360d7d6724b3f1b | |
parent | 0d5f0dc83073cd36d1e92bbcbcc3bc046918bc69 (diff) | |
download | linux-e9c9cb90e76ffaabcc7ca8f275d9e82195fd6367.tar.gz linux-e9c9cb90e76ffaabcc7ca8f275d9e82195fd6367.tar.bz2 linux-e9c9cb90e76ffaabcc7ca8f275d9e82195fd6367.zip |
s390: discard .interp section
When debugging vmlinux with QEMU + GDB, the following GDB error may
occur:
(gdb) c
Continuing.
Warning:
Cannot insert breakpoint -1.
Cannot access memory at address 0xffffffffffff95c0
Command aborted.
(gdb)
The reason is that, when .interp section is present, GDB tries to
locate the file specified in it in memory and put a number of
breakpoints there (see enable_break() function in gdb/solib-svr4.c).
Sometimes GDB finds a bogus location that matches its heuristics,
fails to set a breakpoint and stops. This makes further debugging
impossible.
The .interp section contains misleading information anyway (vmlinux
does not need ld.so), so fix by discarding it.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
-rw-r--r-- | arch/s390/kernel/vmlinux.lds.S | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 5c2224f5b128..acdf1e8b2536 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S @@ -231,5 +231,6 @@ SECTIONS DISCARDS /DISCARD/ : { *(.eh_frame) + *(.interp) } } |