diff --git a/crates/examples/src/readobj/elf.rs b/crates/examples/src/readobj/elf.rs index 04f81ed..3704853 100644 --- a/crates/examples/src/readobj/elf.rs +++ b/crates/examples/src/readobj/elf.rs @@ -3524,6 +3524,9 @@ const FLAGS_DT: &[Flag] = &flags!( DT_PREINIT_ARRAY, DT_PREINIT_ARRAYSZ, DT_SYMTAB_SHNDX, + DT_RELR, + DT_RELRSZ, + DT_RELRENT, DT_GNU_PRELINKED, DT_GNU_CONFLICTSZ, DT_GNU_LIBLISTSZ, diff --git a/crates/examples/testfiles/elf/base-relr-i686.readobj b/crates/examples/testfiles/elf/base-relr-i686.readobj index 0edf54f..6c22415 100644 --- a/crates/examples/testfiles/elf/base-relr-i686.readobj +++ b/crates/examples/testfiles/elf/base-relr-i686.readobj @@ -207,15 +207,15 @@ ProgramHeader { Value: 0x346 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x3D8 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x10 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x4 } Dynamic { @@ -916,15 +916,15 @@ SectionHeader { Value: 0x346 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x3D8 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x10 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x4 } Dynamic { diff --git a/crates/examples/testfiles/elf/base-relr-x86_64.readobj b/crates/examples/testfiles/elf/base-relr-x86_64.readobj index 2fda072..8724dc7 100644 --- a/crates/examples/testfiles/elf/base-relr-x86_64.readobj +++ b/crates/examples/testfiles/elf/base-relr-x86_64.readobj @@ -207,15 +207,15 @@ ProgramHeader { Value: 0x522 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x600 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x18 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x8 } Dynamic { @@ -974,15 +974,15 @@ SectionHeader { Value: 0x522 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x600 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x18 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x8 } Dynamic { diff --git a/crates/rewrite/testfiles/elf/base-relr-i686.noop b/crates/rewrite/testfiles/elf/base-relr-i686.noop index b682fe8..fab0cda 100644 --- a/crates/rewrite/testfiles/elf/base-relr-i686.noop +++ b/crates/rewrite/testfiles/elf/base-relr-i686.noop @@ -207,15 +207,15 @@ ProgramHeader { Value: 0x346 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x3D8 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x10 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x4 } Dynamic { @@ -916,15 +916,15 @@ SectionHeader { Value: 0x346 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x3D8 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x10 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x4 } Dynamic { diff --git a/crates/rewrite/testfiles/elf/base-relr-x86_64.noop b/crates/rewrite/testfiles/elf/base-relr-x86_64.noop index 4429215..b948319 100644 --- a/crates/rewrite/testfiles/elf/base-relr-x86_64.noop +++ b/crates/rewrite/testfiles/elf/base-relr-x86_64.noop @@ -207,15 +207,15 @@ ProgramHeader { Value: 0x522 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x600 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x18 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x8 } Dynamic { @@ -974,15 +974,15 @@ SectionHeader { Value: 0x522 } Dynamic { - Tag: 0x24 + Tag: DT_RELR (0x24) Value: 0x600 } Dynamic { - Tag: 0x23 + Tag: DT_RELRSZ (0x23) Value: 0x18 } Dynamic { - Tag: 0x25 + Tag: DT_RELRENT (0x25) Value: 0x8 } Dynamic { diff --git a/src/elf.rs b/src/elf.rs index f474573..e16f701 100644 --- a/src/elf.rs +++ b/src/elf.rs @@ -1568,6 +1568,12 @@ pub const DT_PREINIT_ARRAY: i64 = 32; pub const DT_PREINIT_ARRAYSZ: i64 = 33; /// Address of SYMTAB_SHNDX section pub const DT_SYMTAB_SHNDX: i64 = 34; +/// Address of Relr relocs +pub const DT_RELR: i64 = 36; +/// Total size of Relr relocs +pub const DT_RELRSZ: i64 = 35; +/// Size of one Relr reloc +pub const DT_RELRENT: i64 = 37; /// Start of OS-specific pub const DT_LOOS: i64 = 0x6000_000d; /// End of OS-specific