authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2024-11-16 20:32:02-05:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-11-16 20:32:02-05:00
log7266d4497e7879491c4394bb01e3057d75823cea
tree220b8d53a17ba590cc827d8c531d0be17e442240
parent53a232e51d193ffc816347bda64921e869e6f32a
parent11e54a3559d6cfebd09c48e16b8315e13d7de337
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #21999 from jacobly0/incr-cases

link: fix failing incremental test cases

6 files changed, 12 insertions(+), 11 deletions(-)

src/dev.zig+3-1
......@@ -23,7 +23,7 @@ pub const Env = enum {
2323 sema,
2424
2525 /// - sema
26 /// - `zig build-* -fno-llvm -fno-lld -target x86_64-linux`
26 /// - `zig build-* -fincremental -fno-llvm -fno-lld -target x86_64-linux --listen=-`
2727 @"x86_64-linux",
2828
2929 /// - sema
......@@ -130,6 +130,8 @@ pub const Env = enum {
130130 else => Env.ast_gen.supports(feature),
131131 },
132132 .@"x86_64-linux" => switch (feature) {
133 .stdio_listen,
134 .incremental,
133135 .x86_64_backend,
134136 .elf_linker,
135137 => true,
src/link/Elf/ZigObject.zig+5-4
......@@ -1496,7 +1496,7 @@ pub fn updateFunc(
14961496 });
14971497 defer gpa.free(name);
14981498 const osec = if (self.text_index) |sect_sym_index|
1499 self.atom(self.symbol(sect_sym_index).ref.index).?.output_section_index
1499 self.symbol(sect_sym_index).output_section_index
15001500 else osec: {
15011501 const osec = try elf_file.addSection(.{
15021502 .name = try elf_file.insertShString(".text"),
......@@ -1896,12 +1896,13 @@ pub fn deleteExport(
18961896 } orelse return;
18971897 const zcu = elf_file.base.comp.zcu.?;
18981898 const exp_name = name.toSlice(&zcu.intern_pool);
1899 const esym_index = metadata.@"export"(self, exp_name) orelse return;
1899 const sym_index = metadata.@"export"(self, exp_name) orelse return;
19001900 log.debug("deleting export '{s}'", .{exp_name});
1901 const esym = &self.symtab.items(.elf_sym)[esym_index.*];
1901 const esym_index = self.symbol(sym_index.*).esym_index;
1902 const esym = &self.symtab.items(.elf_sym)[esym_index];
19021903 _ = self.globals_lookup.remove(esym.st_name);
19031904 esym.* = Elf.null_sym;
1904 self.symtab.items(.shndx)[esym_index.*] = elf.SHN_UNDEF;
1905 self.symtab.items(.shndx)[esym_index] = elf.SHN_UNDEF;
19051906}
19061907
19071908pub fn getGlobalSymbol(self: *ZigObject, elf_file: *Elf, name: []const u8, lib_name: ?[]const u8) !u32 {
test/incremental/add_decl+1-2
......@@ -1,5 +1,4 @@
1// Disabled on self-hosted due to linker crash
2// #target=x86_64-linux-selfhosted
1#target=x86_64-linux-selfhosted
32#target=x86_64-linux-cbe
43#target=x86_64-windows-cbe
54#update=initial version
test/incremental/fix_astgen_failure+1-2
......@@ -1,5 +1,4 @@
1// Disabled on self-hosted due to linker crash
2// #target=x86_64-linux-selfhosted
1#target=x86_64-linux-selfhosted
32#target=x86_64-linux-cbe
43#target=x86_64-windows-cbe
54#update=initial version with error
test/incremental/function_becomes_inline+1-1
......@@ -1,4 +1,4 @@
1//#target=x86_64-linux-selfhosted
1#target=x86_64-linux-selfhosted
22#target=x86_64-linux-cbe
33#target=x86_64-windows-cbe
44#update=non-inline version
test/incremental/recursive_function_becomes_non_recursive+1-1
......@@ -1,4 +1,4 @@
1//#target=x86_64-linux-selfhosted
1#target=x86_64-linux-selfhosted
22#target=x86_64-linux-cbe
33#target=x86_64-windows-cbe
44#update=initial version