authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-10-19 22:41:59+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-10-19 22:41:59+02:00
logf4f5e9edd69d3ca8f4d523ca6949487721a4e166
tree0d0f4986b568c53d4b07bbf8e5a954ae7014d20a
parenteb76ef58f80dffcba426b4668e9d658f10c00cb7

dwarf: bring back realpath resolution of include dirs


1 files changed, 7 insertions(+), 2 deletions(-)

src/link/Dwarf.zig+7-2
......@@ -2587,12 +2587,17 @@ fn genIncludeDirsAndFileNames(self: *Dwarf, arena: Allocator) !struct {
25872587
25882588 for (self.di_files.keys()) |dif| {
25892589 const full_path = try dif.mod.root.joinString(arena, dif.sub_file_path);
2590 // TODO re-investigate if realpath is needed here
25912590 const dir_path = std.fs.path.dirname(full_path) orelse ".";
25922591 const sub_file_path = std.fs.path.basename(full_path);
2592 // TODO re-investigate if realpath is needed here
2593 var buffer: [std.fs.MAX_PATH_BYTES]u8 = undefined;
2594 const resolved = if (!std.fs.path.isAbsolute(dir_path))
2595 std.os.realpath(dir_path, &buffer) catch dir_path
2596 else
2597 dir_path;
25932598
25942599 const dir_index: u28 = blk: {
2595 const dirs_gop = dirs.getOrPutAssumeCapacity(dir_path);
2600 const dirs_gop = dirs.getOrPutAssumeCapacity(try arena.dupe(u8, resolved));
25962601 break :blk @as(u28, @intCast(dirs_gop.index + 1));
25972602 };
25982603