History

binfmt_elf_fdpic: support 64-bit systems

The binfmt_flat_fdpic code has a number of 32-bit specific data structures associated with it. Extend it to be able to support and be used on 64-bit systems as well. The new code defines a number of key 64-bit variants of the core elf-fdpic data structures - along side the existing 32-bit sized ones. A common set of generic named structures are defined to be either the 32-bit or 64-bit ones as required at compile time. This is a similar technique to that used in the ELF binfmt loader. For example: elf_fdpic_loadseg is either elf32_fdpic_loadseg or elf64_fdpic_loadseg elf_fdpic_loadmap is either elf32_fdpic_loadmap or elf64_fdpic_loadmap the choice based on ELFCLASS32 or ELFCLASS64.

Greg Ungerer committed 3 years ago

Commit b922bf01 parent 06c2afb3 files · +47 −20Browse files

Showing the changes to include/uapi (1 of 3 files). Show all

Unified · Split

include/uapi/linux/elf-fdpic.h+15−0
@@ -32,4 +32,19 @@ struct elf32_fdpic_loadmap { · 31 unmodified lines
32 32
33#define ELF32_FDPIC_LOADMAP_VERSION 0x000033#define ELF32_FDPIC_LOADMAP_VERSION 0x0000
34 34
35/* segment mappings for ELF FDPIC libraries/executables/interpreters */
36struct elf64_fdpic_loadseg {
37 Elf64_Addr addr; /* core address to which mapped */
38 Elf64_Addr p_vaddr; /* VMA recorded in file */
39 Elf64_Word p_memsz; /* allocation size recorded in file */
40};
41
42struct elf64_fdpic_loadmap {
43 Elf64_Half version; /* version of these structures, just in case... */
44 Elf64_Half nsegs; /* number of segments */
45 struct elf64_fdpic_loadseg segs[];
46};
47
48#define ELF64_FDPIC_LOADMAP_VERSION 0x0000
49
35#endif /* _UAPI_LINUX_ELF_FDPIC_H */50#endif /* _UAPI_LINUX_ELF_FDPIC_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t