diff --git a/src/link/NvPtx.zig b/src/link/NvPtx.zig index ab77a27aff..df2467ce44 100644 --- a/src/link/NvPtx.zig +++ b/src/link/NvPtx.zig @@ -53,6 +53,7 @@ pub fn createEmpty( .tag = .nvptx, .comp = comp, .emit = emit, + .zcu_object_sub_path = emit.sub_path, .gc_sections = options.gc_sections orelse false, .print_gc_sections = options.print_gc_sections, .stack_size = options.stack_size orelse 0, @@ -116,11 +117,7 @@ pub fn flushModule(self: *NvPtx, arena: Allocator, tid: Zcu.PerThread.Id, prog_n if (build_options.skip_non_native) @panic("Attempted to compile for architecture that was disabled by build configuration"); - // The code that was here before mutated the Compilation's file emission mechanism. - // That's not supposed to happen in flushModule, so I deleted the code. - _ = arena; - _ = self; - _ = prog_node; _ = tid; - @panic("TODO: rewrite the NvPtx.flushModule function"); + + try self.base.emitLlvmObject(arena, self.llvm_object, prog_node); } diff --git a/src/main.zig b/src/main.zig index 2605b089eb..740cea1cdb 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3081,6 +3081,12 @@ fn buildOutputType( const target = main_mod.resolved_target.result; + if (target.cpu.arch.isNvptx()) { + if (emit_bin != .no and create_module.resolved_options.use_llvm) { + fatal("cannot emit PTX binary with the LLVM backend; only '-femit-asm' is supported", .{}); + } + } + if (target.os.tag == .windows and major_subsystem_version == null and minor_subsystem_version == null) { major_subsystem_version, minor_subsystem_version = switch (target.os.version_range.windows.min) { .nt4 => .{ 4, 0 },