Marc Hartmayer
2734724432
zdump: df_elf: add multiple ELF section helper
...
Preparation for upcoming patches.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
6176509076
zdump: df_elf: refactor check_elf_hdr
...
The function will be reused by upcoming patches.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
1780efae07
zdump: df_elf: ehdr_is_elf_object: add ELF version check
...
Currently, only the ELF version `1` is defined by the ELF specification. See
`man 5 elf` for details. Therefore of course, we do only support this version.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
922e8cbb2f
zdump: since we create ELF version 1 files use this value explicitly
...
The value of `EV_CURRENT` might change. The ELF specification says: "The value
of EV_CURRENT, though given as 1 above, will change as necessary to reflect the
current version number." [1]
[1] https://refspecs.linuxfoundation.org/elf/elf.pdf
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
eef0dd4fa4
zdump: df_elf: add missing endianness check
...
A s390x ELF file must use big-endian encoding.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
f93f437f8b
zdump: df_elf: read_elf_hdr: return Elf64_Ehdr struct
...
This makes the API of `read_elf_hdr` consistent with `read_elf_phdrs`.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
4e6d43e2ac
zdump: dfi_elf: refactor nt_* functions
...
The functions are refactored so the `struct zg_fh` value is now passed as
argument to the `nt_*` functions instead of accessing the global variable `g.fh`
from within of the functions. This makes the functions reusable and easier to
test. While at it, improve the documentation of `nt_read`.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
25475bdf42
zdump: read_elf_phdrs: fix -Wconversion issue
...
`ehdr->e_phoff` has the type `Elf64_Off` and this maps to `uint64_t`, but `off_t` is signed. Let's
add a check for this.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
09c413b1be
zdump: read_elf_phdrs: handle no program header case
...
Handle the case where no program headers are defined (see `man 5 elf`).
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
8944c2f60d
zdump: dfi_elf: refactor read_elf_(ehdr|phdrs)
...
Make the function unit testable and easier to reuse - no functional change.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
776e5d41d7
zdump: dfi_elf: factor out some ELF functionalities
...
This makes them reuseable and testable.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
8d7e8a87b5
zdump: df_elf: move function documentation to function declarations
...
It's more common to have the function documentation next to the function
declarations.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Acked-by: Steffen Eiden <seiden@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
e24d8c936c
zdump: move NOTE_NAME_* definitions to df_elf.h
...
This allows the reuse in other source files.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Acked-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Marc Hartmayer
39b6c4a273
zdump: introduce ELF_NOTE_ROUNDUP macro
...
Introduce and use `ELF_NOTE_ROUNDUP` macro.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com >
Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2022-10-22 20:27:16 +02:00
Alexander Egorenkov
70925f9aff
zdump/df_elf: Introduce symbolic names for note names
...
To reduce code duplication.
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2021-12-09 16:19:25 +01:00
Alexander Egorenkov
ef88fac874
zdump: Extract common ELF routines from dfo_elf and move to df_elf
...
The primary goal of this change is to split DFO ELF module into
multiple smaller ones for better unit testability.
The change doesn't introduce any functionality changes, just shuffling code
around.
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com >
Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com >
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com >
2021-12-09 16:19:25 +01:00