@@ -63,17 +63,16 @@ pub const Reloc = struct {
63
63
pub fn populateMissingMetadata (self : * DebugSymbols , allocator : Allocator ) ! void {
64
64
if (self .linkedit_segment_cmd_index == null ) {
65
65
self .linkedit_segment_cmd_index = @intCast (u8 , self .segments .items .len );
66
- log .debug ("found __LINKEDIT segment free space 0x{x} to 0x{x}" , .{
67
- self .base .page_size ,
68
- self .base .page_size * 2 ,
69
- });
66
+ const fileoff = @intCast (u64 , self .base .page_size );
67
+ const needed_size = @intCast (u64 , self .base .page_size ) * 2 ;
68
+ log .debug ("found __LINKEDIT segment free space 0x{x} to 0x{x}" , .{ fileoff , needed_size });
70
69
// TODO this needs reworking
71
70
try self .segments .append (allocator , .{
72
71
.segname = makeStaticString ("__LINKEDIT" ),
73
- .vmaddr = self . base . page_size ,
74
- .vmsize = self . base . page_size ,
75
- .fileoff = self . base . page_size ,
76
- .filesize = self . base . page_size ,
72
+ .vmaddr = fileoff ,
73
+ .vmsize = needed_size ,
74
+ .fileoff = fileoff ,
75
+ .filesize = needed_size ,
77
76
.maxprot = macho .PROT .READ ,
78
77
.initprot = macho .PROT .READ ,
79
78
.cmdsize = @sizeOf (macho .segment_command_64 ),
@@ -284,6 +283,7 @@ pub fn flushModule(self: *DebugSymbols, allocator: Allocator, options: link.Opti
284
283
const lc_writer = lc_buffer .writer ();
285
284
var ncmds : u32 = 0 ;
286
285
286
+ self .updateDwarfSegment ();
287
287
try self .writeLinkeditSegmentData (& ncmds , lc_writer );
288
288
self .updateDwarfSegment ();
289
289
0 commit comments