about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBaitinq <[email protected]>2025-03-04 00:45:03 +0100
committerBaitinq <[email protected]>2025-03-04 00:45:03 +0100
commitdcab89dba39480669c10f3ade80c70ab45598ecf (patch)
treefbdf12cc9898c8612b754ae2ffc695814c389f1d
parentCodegen: Cleanup (diff)
downloadpry-lang-dcab89dba39480669c10f3ade80c70ab45598ecf.tar.gz
pry-lang-dcab89dba39480669c10f3ade80c70ab45598ecf.tar.bz2
pry-lang-dcab89dba39480669c10f3ade80c70ab45598ecf.zip
Codegen: Initialize all llvm targets
-rw-r--r--src/codegen.zig13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 56b540f..8b471ef 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -23,9 +23,10 @@ pub const CodeGen = struct {
 
     pub fn init(arena: std.mem.Allocator) !*CodeGen {
         // Initialize LLVM
-        _ = target.LLVMInitializeNativeTarget();
-        _ = target.LLVMInitializeNativeAsmPrinter();
-        _ = target.LLVMInitializeNativeAsmParser();
+        target.LLVMInitializeAllTargetInfos();
+        _ = target.LLVMInitializeAllTargets();
+        _ = target.LLVMInitializeAllAsmPrinters();
+        _ = target.LLVMInitializeAllAsmParsers();
 
         const module: types.LLVMModuleRef = core.LLVMModuleCreateWithName("module");
         const builder = core.LLVMCreateBuilder();
@@ -63,7 +64,10 @@ pub const CodeGen = struct {
         // Generate code
         const triple = target_m.LLVMGetDefaultTargetTriple();
         var target_ref: types.LLVMTargetRef = undefined;
-        _ = target_m.LLVMGetTargetFromTriple(triple, &target_ref, null);
+        var message: [*c]u8 = undefined;
+        _ = target_m.LLVMGetTargetFromTriple(triple, &target_ref, &message);
+        std.debug.print("Target output: {s}.\n", .{message});
+        core.LLVMDisposeMessage(message);
         const target_machine = target_m.LLVMCreateTargetMachine(
             target_ref,
             triple,
@@ -85,7 +89,6 @@ pub const CodeGen = struct {
         );
         std.debug.print("Object file generated: {s}\n", .{filename});
 
-        var message: [*c]u8 = undefined;
         _ = analysis.LLVMVerifyModule(self.llvm_module, types.LLVMVerifierFailureAction.LLVMAbortProcessAction, &message);
         std.debug.print("Verification output: {s}.\n", .{message});
         core.LLVMDisposeMessage(message);