authorgravatar for seda18@rolmail.netDavid Senoner <seda18@rolmail.net> 2026-07-29 15:11:54+02:00
committergravatar for seda18@rolmail.netDavid Senoner <seda18@rolmail.net> 2026-07-30 21:23:58+02:00
log4843120b4c3d3bb8cc8cb56b0185af24676616ff
treebb8833dfedeea44a984b2cca828e9a27d151e81d
parent8d888624567d6c5170ddbeda5f312c3b1762261b

elf: remove usages of deprecated Elf32_Phdr


3 files changed, 27 insertions(+), 27 deletions(-)

lib/std/debug/SelfInfo/Elf.zig+1-1
...@@ -518,7 +518,7 @@ const DlIterContext = struct {...@@ -518,7 +518,7 @@ const DlIterContext = struct {
518 for (info.phdr[0..info.phnum]) |phdr| {518 for (info.phdr[0..info.phnum]) |phdr| {
519 if (phdr.type != .LOAD) continue;519 if (phdr.type != .LOAD) continue;
520 try context.si.ranges.append(gpa, .{520 try context.si.ranges.append(gpa, .{
521 // Overflowing addition handles VSDOs having p_vaddr = 0xffffffffff700000521 // Overflowing addition handles VSDOs having vaddr = 0xffffffffff700000
522 .start = info.addr +% phdr.vaddr,522 .start = info.addr +% phdr.vaddr,
523 .len = phdr.memsz,523 .len = phdr.memsz,
524 .module_index = module_index,524 .module_index = module_index,
lib/std/elf.zig+11-11
...@@ -811,7 +811,7 @@ pub const ProgramHeaderIterator = struct {...@@ -811,7 +811,7 @@ pub const ProgramHeaderIterator = struct {
811 if (it.index >= it.phnum) return null;811 if (it.index >= it.phnum) return null;
812 defer it.index += 1;812 defer it.index += 1;
813813
814 const size: u64 = if (it.is_64) @sizeOf(Elf64_Phdr) else @sizeOf(Elf32_Phdr);814 const size: u64 = if (it.is_64) @sizeOf(Elf64_Phdr) else @sizeOf(Elf32.Phdr);
815 const offset = it.phoff + size * it.index;815 const offset = it.phoff + size * it.index;
816 try it.file_reader.seekTo(offset);816 try it.file_reader.seekTo(offset);
817817
...@@ -832,7 +832,7 @@ pub const ProgramHeaderBufferIterator = struct {...@@ -832,7 +832,7 @@ pub const ProgramHeaderBufferIterator = struct {
832 if (it.index >= it.phnum) return null;832 if (it.index >= it.phnum) return null;
833 defer it.index += 1;833 defer it.index += 1;
834834
835 const size: usize = if (it.is_64) @sizeOf(Elf64_Phdr) else @sizeOf(Elf32_Phdr);835 const size: usize = if (it.is_64) @sizeOf(Elf64_Phdr) else @sizeOf(Elf32.Phdr);
836 const offset = @as(usize, @intCast(it.phoff)) + size * it.index;836 const offset = @as(usize, @intCast(it.phoff)) + size * it.index;
837 var reader = Io.Reader.fixed(it.buf[offset..]);837 var reader = Io.Reader.fixed(it.buf[offset..]);
838838
...@@ -846,16 +846,16 @@ pub fn takeProgramHeader(reader: *Io.Reader, is_64: bool, endian: Endian) !Elf64...@@ -846,16 +846,16 @@ pub fn takeProgramHeader(reader: *Io.Reader, is_64: bool, endian: Endian) !Elf64
846 return phdr;846 return phdr;
847 }847 }
848848
849 const phdr = try reader.takeStruct(Elf32_Phdr, endian);849 const phdr = try reader.takeStruct(Elf32.Phdr, endian);
850 return .{850 return .{
851 .p_type = phdr.p_type,851 .p_type = @backingInt(phdr.type),
852 .p_offset = phdr.p_offset,852 .p_offset = phdr.offset,
853 .p_vaddr = phdr.p_vaddr,853 .p_vaddr = phdr.vaddr,
854 .p_paddr = phdr.p_paddr,854 .p_paddr = phdr.paddr,
855 .p_filesz = phdr.p_filesz,855 .p_filesz = phdr.filesz,
856 .p_memsz = phdr.p_memsz,856 .p_memsz = phdr.memsz,
857 .p_flags = phdr.p_flags,857 .p_flags = @backingInt(phdr.flags),
858 .p_align = phdr.p_align,858 .p_align = phdr.@"align",
859 };859 };
860}860}
861861
src/link/Elf.zig+15-15
...@@ -336,7 +336,7 @@ pub fn createEmpty(...@@ -336,7 +336,7 @@ pub fn createEmpty(
336336
337 // Initialize PT.PHDR program header337 // Initialize PT.PHDR program header
338 const p_align: u16 = switch (self.ptr_width) {338 const p_align: u16 = switch (self.ptr_width) {
339 .p32 => @alignOf(elf.Elf32_Phdr),339 .p32 => @alignOf(elf.Elf32.Phdr),
340 .p64 => @alignOf(elf.Elf64_Phdr),340 .p64 => @alignOf(elf.Elf64_Phdr),
341 };341 };
342 const ehsize: u64 = switch (self.ptr_width) {342 const ehsize: u64 = switch (self.ptr_width) {
...@@ -344,7 +344,7 @@ pub fn createEmpty(...@@ -344,7 +344,7 @@ pub fn createEmpty(
344 .p64 => @sizeOf(elf.Elf64_Ehdr),344 .p64 => @sizeOf(elf.Elf64_Ehdr),
345 };345 };
346 const phsize: u64 = switch (self.ptr_width) {346 const phsize: u64 = switch (self.ptr_width) {
347 .p32 => @sizeOf(elf.Elf32_Phdr),347 .p32 => @sizeOf(elf.Elf32.Phdr),
348 .p64 => @sizeOf(elf.Elf64_Phdr),348 .p64 => @sizeOf(elf.Elf64_Phdr),
349 };349 };
350 const max_nphdrs = comptime getMaxNumberOfPhdrs();350 const max_nphdrs = comptime getMaxNumberOfPhdrs();
...@@ -1477,13 +1477,13 @@ fn writePhdrTable(self: *Elf) !void {...@@ -1477,13 +1477,13 @@ fn writePhdrTable(self: *Elf) !void {
14771477
1478 switch (self.ptr_width) {1478 switch (self.ptr_width) {
1479 .p32 => {1479 .p32 => {
1480 const buf = try gpa.alloc(elf.Elf32_Phdr, self.phdrs.items.len);1480 const buf = try gpa.alloc(elf.Elf32.Phdr, self.phdrs.items.len);
1481 defer gpa.free(buf);1481 defer gpa.free(buf);
14821482
1483 for (buf, 0..) |*phdr, i| {1483 for (buf, 0..) |*phdr, i| {
1484 phdr.* = phdrTo32(self.phdrs.items[i]);1484 phdr.* = phdrTo32(self.phdrs.items[i]);
1485 if (foreign_endian) {1485 if (foreign_endian) {
1486 mem.byteSwapAllFields(elf.Elf32_Phdr, phdr);1486 mem.byteSwapAllFields(elf.Elf32.Phdr, phdr);
1487 }1487 }
1488 }1488 }
1489 try self.pwriteAll(@ptrCast(buf), phdr_table.p_offset);1489 try self.pwriteAll(@ptrCast(buf), phdr_table.p_offset);
...@@ -1622,7 +1622,7 @@ pub fn writeElfHeader(self: *Elf) !void {...@@ -1622,7 +1622,7 @@ pub fn writeElfHeader(self: *Elf) !void {
1622 index += 2;1622 index += 2;
16231623
1624 const e_phentsize: u16 = switch (self.ptr_width) {1624 const e_phentsize: u16 = switch (self.ptr_width) {
1625 .p32 => @sizeOf(elf.Elf32_Phdr),1625 .p32 => @sizeOf(elf.Elf32.Phdr),
1626 .p64 => @sizeOf(elf.Elf64_Phdr),1626 .p64 => @sizeOf(elf.Elf64_Phdr),
1627 };1627 };
1628 mem.writeInt(u16, hdr_buf[index..][0..2], e_phentsize, endian);1628 mem.writeInt(u16, hdr_buf[index..][0..2], e_phentsize, endian);
...@@ -2672,7 +2672,7 @@ fn allocatePhdrTable(self: *Elf) error{OutOfMemory}!void {...@@ -2672,7 +2672,7 @@ fn allocatePhdrTable(self: *Elf) error{OutOfMemory}!void {
2672 .p64 => @sizeOf(elf.Elf64_Ehdr),2672 .p64 => @sizeOf(elf.Elf64_Ehdr),
2673 };2673 };
2674 const phsize: u64 = switch (self.ptr_width) {2674 const phsize: u64 = switch (self.ptr_width) {
2675 .p32 => @sizeOf(elf.Elf32_Phdr),2675 .p32 => @sizeOf(elf.Elf32.Phdr),
2676 .p64 => @sizeOf(elf.Elf64_Phdr),2676 .p64 => @sizeOf(elf.Elf64_Phdr),
2677 };2677 };
2678 const needed_size = self.phdrs.items.len * phsize;2678 const needed_size = self.phdrs.items.len * phsize;
...@@ -3347,16 +3347,16 @@ pub fn archPtrWidthBytes(self: Elf) u8 {...@@ -3347,16 +3347,16 @@ pub fn archPtrWidthBytes(self: Elf) u8 {
3347 return @intCast(@divExact(self.getTarget().ptrBitWidth(), 8));3347 return @intCast(@divExact(self.getTarget().ptrBitWidth(), 8));
3348}3348}
33493349
3350fn phdrTo32(phdr: elf.Elf64_Phdr) elf.Elf32_Phdr {3350fn phdrTo32(phdr: elf.Elf64_Phdr) elf.Elf32.Phdr {
3351 return .{3351 return .{
3352 .p_type = phdr.p_type,3352 .type = @fromBackingInt(phdr.p_type),
3353 .p_flags = phdr.p_flags,3353 .flags = @fromBackingInt(phdr.p_flags),
3354 .p_offset = @as(u32, @intCast(phdr.p_offset)),3354 .offset = @intCast(phdr.p_offset),
3355 .p_vaddr = @as(u32, @intCast(phdr.p_vaddr)),3355 .vaddr = @intCast(phdr.p_vaddr),
3356 .p_paddr = @as(u32, @intCast(phdr.p_paddr)),3356 .paddr = @intCast(phdr.p_paddr),
3357 .p_filesz = @as(u32, @intCast(phdr.p_filesz)),3357 .filesz = @intCast(phdr.p_filesz),
3358 .p_memsz = @as(u32, @intCast(phdr.p_memsz)),3358 .memsz = @intCast(phdr.p_memsz),
3359 .p_align = @as(u32, @intCast(phdr.p_align)),3359 .@"align" = @intCast(phdr.p_align),
3360 };3360 };
3361}3361}
33623362