From c009264f5b298868ecc2498da208b85e3cb5b568 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Thu, 25 Jul 2024 09:05:36 +0200 Subject: [PATCH 1/2] std.elf: Add some newer dynamic tag types. --- lib/std/elf.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/std/elf.zig b/lib/std/elf.zig index f2206502cd..741dc2cede 100644 --- a/lib/std/elf.zig +++ b/lib/std/elf.zig @@ -84,7 +84,10 @@ pub const DT_ENCODING = 32; pub const DT_PREINIT_ARRAY = 32; pub const DT_PREINIT_ARRAYSZ = 33; pub const DT_SYMTAB_SHNDX = 34; -pub const DT_NUM = 35; +pub const DT_RELRSZ = 35; +pub const DT_RELR = 36; +pub const DT_RELRENT = 37; +pub const DT_NUM = 38; pub const DT_LOOS = 0x6000000d; pub const DT_HIOS = 0x6ffff000; pub const DT_LOPROC = 0x70000000; From d0557a699e19ad7350d0689e90fdb3d3f94708f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 26 Jul 2024 00:26:33 +0200 Subject: [PATCH 2/2] std.elf: Add Elf32_Relr and Elf64_Relr definitions. --- lib/std/elf.zig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/std/elf.zig b/lib/std/elf.zig index 741dc2cede..b53ad91382 100644 --- a/lib/std/elf.zig +++ b/lib/std/elf.zig @@ -862,6 +862,8 @@ pub const Elf64_Rela = extern struct { return @truncate(self.r_info); } }; +pub const Elf32_Relr = Elf32_Word; +pub const Elf64_Relr = Elf64_Xword; pub const Elf32_Dyn = extern struct { d_tag: Elf32_Sword, d_val: Elf32_Addr, @@ -1055,6 +1057,11 @@ pub const Rela = switch (@sizeOf(usize)) { 8 => Elf64_Rela, else => @compileError("expected pointer size of 32 or 64"), }; +pub const Relr = switch (@sizeOf(usize)) { + 4 => Elf32_Relr, + 8 => Elf64_Relr, + else => @compileError("expected pointer size of 32 or 64"), +}; pub const Shdr = switch (@sizeOf(usize)) { 4 => Elf32_Shdr, 8 => Elf64_Shdr,