Ilya Leoshkevich
bbcf6158ad
scripts/gdb: fix debugging modules compiled with hot/cold partitioning
...
[ Upstream commit 8731acc5068eb3f422a45c760d32198175c756f8 ]
gcc's -freorder-blocks-and-partition option makes it group frequently
and infrequently used code in .text.hot and .text.unlikely sections
respectively. At least when building modules on s390, this option is
used by default.
gdb assumes that all code is located in .text section, and that .text
section is located at module load address. With such modules this is no
longer the case: there is code in .text.hot and .text.unlikely, and
either of them might precede .text.
Fix by explicitly telling gdb the addresses of code sections.
It might be tempting to do this for all sections, not only the ones in
the white list. Unfortunately, gdb appears to have an issue, when
telling it about e.g. loadable .note.gnu.build-id section causes it to
think that non-loadable .note.Linux section is loaded at address 0,
which in turn causes NULL pointers to be resolved to bogus symbols. So
keep using the white list approach for the time being.
Link: http://lkml.kernel.org/r/20191028152734.13065-1-iii@linux.ibm.com
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-05 15:34:10 +01:00
..
basic
fixdep: faster CONFIG_ search
2016-08-24 22:34:19 +02:00
coccinelle
fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock
2019-06-11 12:22:49 +02:00
dtc
scripts/dtc: dt_to_config - kernel config options for a devicetree
2016-07-22 14:48:16 -05:00
gcc-plugins
gcc-plugins: Fix build failures under Darwin host
2019-06-11 12:22:43 +02:00
gdb
scripts/gdb: fix debugging modules compiled with hot/cold partitioning
2019-12-05 15:34:10 +01:00
genksyms
kbuild: Regenerate genksyms lexer
2016-08-25 20:03:51 +02:00
kconfig
kconfig/[mn]conf: handle backspace (^H) key
2019-05-04 08:49:10 +02:00
ksymoops
mod
modpost: file2alias: check prototype of handler
2019-04-27 09:34:41 +02:00
package
builddeb: Fix header package regarding dtc source links
2018-05-30 07:50:39 +02:00
selinux
tracing
ftrace/scripts: Add helper script to bisect function tracing problem functions
2016-09-21 13:56:55 -04:00
.gitignore
adjust_autoksyms.sh
kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races
2018-05-30 07:50:37 +02:00
analyze_suspend.py
PM / tools: scripts: AnalyzeSuspend v4.2
2016-07-15 23:34:14 +02:00
asn1_compiler.c
bloat-o-meter
scripts/bloat-o-meter: fix SIGPIPE
2016-11-11 08:12:37 -08:00
bootgraph.pl
check-lc_ctype.c
check_extable.sh
checkincludes.pl
checkkconfigsymbols.py
checkkconfigsymbols: use arglist instead of cmd string
2016-08-28 11:08:34 +02:00
checkpatch.pl
checkpatch: silence perl 5.26.0 unescaped left brace warnings
2017-07-21 07:42:21 +02:00
checkstack.pl
scripts/checkstack.pl: Fix arm64 wrong or unknown architecture
2019-07-10 09:55:31 +02:00
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck
coccinelle: fix parallel build with CHECK=scripts/coccicheck
2017-12-14 09:28:22 +01:00
config
conmakehash.c
const_structs.checkpatch
const_structs.checkpatch: add frequently used from Julia Lawall's list
2016-10-11 15:06:30 -07:00
decode_stacktrace.sh
scripts/decode_stacktrace: match basepath using shell prefix operator, not regex
2019-09-16 08:19:33 +02:00
decodecode
depmod.sh
kbuild: make missing $DEPMOD a Warning instead of an Error
2018-09-15 09:43:01 +02:00
diffconfig
docproc.c
docproc: print a comment about autogeneration for rst output
2016-05-14 09:56:56 -06:00
export_report.pl
extract-cert.c
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
extract_xc3028.pl
[media] extract_xc3028.pl: move it to scripts/dir
2016-07-17 14:08:12 -03:00
faddr2line
scripts/faddr2line: improve on base path filtering a bit
2016-09-19 14:49:08 -07:00
gcc-goto.sh
gcc-ld
gcc-plugin.sh
gcc-plugins: abort builds cleanly when not supported
2016-08-08 17:49:05 -07:00
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
scripts/has-stack-protector: add -fno-PIE
2016-11-09 22:28:05 +01:00
gen_initramfs_list.sh
initramfs: Escape colons in depfile
2016-09-23 10:35:32 +02:00
get_dvb_firmware
[media] doc-rst: move DVB avulse docs to Documentation/media
2016-07-17 14:02:45 -03:00
get_maintainer.pl
get_maintainer: quiet noisy implicit -f vcs_file_exists checking
2016-08-26 17:39:34 -07:00
gfp-translate
headerdep.pl
headers.sh
headers_check.pl
headers_check: don't warn about c++ guards
2016-05-24 14:12:48 +10:00
headers_install.sh
insert-sys-cert.c
kallsyms.c
kallsyms: exclude kasan local symbols on s390
2019-08-04 09:33:40 +02:00
Kbuild.include
kbuild: simplify ld-option implementation
2019-05-02 09:31:59 +02:00
kernel-doc
scripts/kernel-doc: Don't fail with status != 0 if error encountered with -none
2018-02-25 11:05:47 +01:00
kernel-doc-xml-ref
ld-version.sh
ld-version: Drop the 4th and 5th version components
2016-05-13 14:02:05 +02:00
Lindent
link-vmlinux.sh
kbuild: allow architectures to use thin archives instead of ld -r
2016-09-09 10:31:19 +02:00
Makefile
GCC plugin infrastructure
2016-06-07 22:57:10 +02:00
Makefile.asm-generic
kbuild: Remove stale asm-generic wrappers
2016-07-07 15:58:45 +02:00
Makefile.build
kbuild: Add support to generate LLVM assembly files
2018-11-23 08:20:35 +01:00
Makefile.clean
Shared library support
2016-06-07 22:57:10 +02:00
Makefile.dtbinst
Makefile.extrawarn
Kbuild: suppress packed-not-aligned warning for default setting only
2018-12-08 13:05:04 +01:00
Makefile.fwinst
Makefile.gcc-plugins
gcc-plugins: Add latent_entropy plugin
2016-10-10 14:51:44 -07:00
Makefile.headersinst
Makefile.help
Makefile.host
kbuild: Add __cc-option macro
2018-11-23 08:20:35 +01:00
Makefile.kasan
kasan: don't emit builtin calls when sanitization is off
2018-08-17 20:59:29 +02:00
Makefile.lib
kbuild: fix asm-offset generation to work with clang
2018-11-23 08:20:35 +01:00
Makefile.modbuiltin
Makefile.modinst
Makefile.modpost
kbuild: modpost: handle KBUILD_EXTRA_SYMBOLS only for external modules
2019-08-25 10:51:47 +02:00
Makefile.modsign
Makefile.ubsan
Kbuild: enable -Wmaybe-uninitialized warning for "make W=1"
2016-11-11 08:45:08 -08:00
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds
objtool, modules: Discard objtool annotation sections for modules
2018-01-17 09:38:58 +01:00
namespace.pl
namespace: fix namespace.pl script to support relative paths
2019-10-29 09:15:06 +01:00
objdiff
patch-kernel
pnmtologo.c
profile2linkerlist.pl
prune-kernel
recordmcount.c
nmi_backtrace: generate one-line reports for idle cpus
2016-10-07 18:46:30 -07:00
recordmcount.h
recordmcount: Fix spurious mcount entries on powerpc
2019-08-04 09:33:38 +02:00
recordmcount.pl
nmi_backtrace: generate one-line reports for idle cpus
2016-10-07 18:46:30 -07:00
setlocalversion
scripts/setlocalversion: Improve -dirty check with git-status --no-optional-locks
2019-11-06 12:18:03 +01:00
show_delta
sign-file.c
modsign: Make sign-file determine the format of the X.509 cert
2016-06-14 13:18:33 +01:00
sortextable.c
sortextable.h
spelling.txt
spelling.txt: "modeled" is spelt correctly
2016-10-07 18:46:30 -07:00
stackdelta
stackusage
tags.sh
tags: honor COMPILED_SOURCE with apart output directory
2018-04-13 19:48:21 +02:00
unifdef.c
unifdef: use memcpy instead of strncpy
2018-12-08 13:05:05 +01:00
ver_linux
ver_linux: rename ver_linux.awk to ver_linux
2016-08-31 13:59:31 +02:00
xen-hypercalls.sh
xz_wrap.sh