Commit 5aef54cbc8

Jacob G-W <jacoblevgw@gmail.com>
2022-10-24 23:01:26
additional fixes for Plan9 with this, the tests should pass
1 parent c6fb798
Changed files (4)
src/link/Plan9.zig
@@ -956,6 +956,13 @@ pub fn allocateDeclIndexes(self: *Plan9, decl_index: Module.Decl.Index) !void {
     _ = self;
     _ = decl_index;
 }
+/// Must be called only after a successful call to `updateDecl`.
+pub fn updateDeclLineNumber(self: *Plan9, mod: *Module, decl: *const Module.Decl) !void {
+    _ = self;
+    _ = mod;
+    _ = decl;
+}
+
 pub fn getDeclVAddr(
     self: *Plan9,
     decl_index: Module.Decl.Index,
src/Compilation.zig
@@ -1088,10 +1088,10 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
     // Once they are capable this condition could be removed. When removing this condition,
     // also test the use case of `build-obj -fcompiler-rt` with the native backends
     // and make sure the compiler-rt symbols are emitted.
-    const capable_of_building_compiler_rt = build_options.have_llvm;
+    const capable_of_building_compiler_rt = build_options.have_llvm and options.target.os.tag != .plan9;
 
-    const capable_of_building_zig_libc = build_options.have_llvm;
-    const capable_of_building_ssp = build_options.have_llvm;
+    const capable_of_building_zig_libc = build_options.have_llvm and options.target.os.tag != .plan9;
+    const capable_of_building_ssp = build_options.have_llvm and options.target.os.tag != .plan9;
 
     const comp: *Compilation = comp: {
         // For allocations that have the same lifetime as Compilation. This arena is used only during this
src/link.zig
@@ -581,7 +581,7 @@ pub const File = struct {
             .macho => return @fieldParentPtr(MachO, "base", base).updateDeclLineNumber(module, decl),
             .c => return @fieldParentPtr(C, "base", base).updateDeclLineNumber(module, decl),
             .wasm => return @fieldParentPtr(Wasm, "base", base).updateDeclLineNumber(module, decl),
-            .plan9 => @panic("TODO: implement updateDeclLineNumber for plan9"),
+            .plan9 => return @fieldParentPtr(Plan9, "base", base).updateDeclLineNumber(module, decl),
             .spirv, .nvptx => {},
         }
     }
test/cases/plan9/exit.zig
@@ -1,5 +1,5 @@
 pub fn main() void {}
 
 // run
-// target=x86_64-plan9,aarch64-plan9
+// target=x86_64-plan9
 //