|
Mark Wielaard |
d0217a |
commit 16fa414aff02365534b7bbeab281c731b9c4497d
|
|
Mark Wielaard |
d0217a |
Author: Mark Wielaard <mjw@redhat.com>
|
|
Mark Wielaard |
d0217a |
Date: Thu Aug 22 13:45:16 2013 +0200
|
|
Mark Wielaard |
d0217a |
|
|
Mark Wielaard |
d0217a |
libdwfl/linux-kernel-modules.c (report_kernel): Pass add_p_vaddr as true.
|
|
Mark Wielaard |
d0217a |
|
|
Mark Wielaard |
d0217a |
On some architectures (e.g. x86_64) the vmlinux is ET_EXEC, while on
|
|
Mark Wielaard |
d0217a |
others (e.g. ppc64) it is ET_DYN. In both cases the phdr p_vaddr will
|
|
Mark Wielaard |
d0217a |
be non-zero. We want the image to be placed as if it was ET_DYN, so
|
|
Mark Wielaard |
d0217a |
pass true for add_p_vaddr which will do the right thing (in combination
|
|
Mark Wielaard |
d0217a |
with a zero base) in either case.
|
|
Mark Wielaard |
d0217a |
|
|
Mark Wielaard |
d0217a |
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
|
Mark Wielaard |
d0217a |
|
|
Mark Wielaard |
d0217a |
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
|
|
Mark Wielaard |
d0217a |
index 88bdfc6..90ba686 100644
|
|
Mark Wielaard |
d0217a |
--- a/libdwfl/ChangeLog
|
|
Mark Wielaard |
d0217a |
+++ b/libdwfl/ChangeLog
|
|
Mark Wielaard |
d0217a |
@@ -1,3 +1,8 @@
|
|
Mark Wielaard |
d0217a |
+2013-08-25 Mark Wielaard <mjw@redhat.com>
|
|
Mark Wielaard |
d0217a |
+
|
|
Mark Wielaard |
d0217a |
+ * linux-kernel-modules.c (report_kernel): Pass add_p_vaddr as true
|
|
Mark Wielaard |
d0217a |
+ to dwfl_report_elf.
|
|
Mark Wielaard |
d0217a |
+
|
|
Mark Wielaard |
d0217a |
2013-07-25 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
Mark Wielaard |
d0217a |
|
|
Mark Wielaard |
d0217a |
* dwfl_segment_report_module.c (dwfl_segment_report_module): Check for
|
|
Mark Wielaard |
d0217a |
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
|
|
Mark Wielaard |
d0217a |
index dec1a59..fe01028 100644
|
|
Mark Wielaard |
d0217a |
--- a/libdwfl/linux-kernel-modules.c
|
|
Mark Wielaard |
d0217a |
+++ b/libdwfl/linux-kernel-modules.c
|
|
Mark Wielaard |
d0217a |
@@ -216,8 +216,14 @@ report_kernel (Dwfl *dwfl, const char **release,
|
|
Mark Wielaard |
d0217a |
|
|
Mark Wielaard |
d0217a |
if (report)
|
|
Mark Wielaard |
d0217a |
{
|
|
Mark Wielaard |
d0217a |
+ /* Note that on some architectures (e.g. x86_64) the vmlinux
|
|
Mark Wielaard |
d0217a |
+ is ET_EXEC, while on others (e.g. ppc64) it is ET_DYN.
|
|
Mark Wielaard |
d0217a |
+ In both cases the phdr p_vaddr load address will be non-zero.
|
|
Mark Wielaard |
d0217a |
+ We want the image to be placed as if it was ET_DYN, so
|
|
Mark Wielaard |
d0217a |
+ pass true for add_p_vaddr which will do the right thing
|
|
Mark Wielaard |
d0217a |
+ (in combination with a zero base) in either case. */
|
|
Mark Wielaard |
d0217a |
Dwfl_Module *mod = INTUSE(dwfl_report_elf) (dwfl, KERNEL_MODNAME,
|
|
Mark Wielaard |
d0217a |
- fname, fd, 0, false);
|
|
Mark Wielaard |
d0217a |
+ fname, fd, 0, true);
|
|
Mark Wielaard |
d0217a |
if (mod == NULL)
|
|
Mark Wielaard |
d0217a |
result = -1;
|
|
Mark Wielaard |
d0217a |
else
|