diff options
| author | Baitinq <[email protected]> | 2025-03-04 01:28:15 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-03-04 01:28:15 +0100 |
| commit | 0032c15b7366bc59be2bca9c51b8390eeb39457d (patch) | |
| tree | 40689dff07c74579d272458a4862476a3b27f6cd | |
| parent | Codegen: Initialize all llvm targets (diff) | |
| download | pry-lang-0032c15b7366bc59be2bca9c51b8390eeb39457d.tar.gz pry-lang-0032c15b7366bc59be2bca9c51b8390eeb39457d.tar.bz2 pry-lang-0032c15b7366bc59be2bca9c51b8390eeb39457d.zip | |
Codegen: Fix llvm compilation in macos
| -rw-r--r-- | flake.nix | 7 | ||||
| -rw-r--r-- | src/codegen.zig | 22 |
2 files changed, 16 insertions, 13 deletions
diff --git a/flake.nix b/flake.nix index e07aa2c..53c4173 100644 --- a/flake.nix +++ b/flake.nix @@ -27,9 +27,10 @@ buildInputs = with pkgs; [ zig.packages."${system}".master zls.packages."${system}".default - llvmPackages_18.libllvm - gdb - gf + # llvmPackages_19.libllvm + llvmPackages.llvm + # gdb + # gf ]; }; in { diff --git a/src/codegen.zig b/src/codegen.zig index 8b471ef..06e177c 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -24,9 +24,10 @@ pub const CodeGen = struct { pub fn init(arena: std.mem.Allocator) !*CodeGen { // Initialize LLVM target.LLVMInitializeAllTargetInfos(); - _ = target.LLVMInitializeAllTargets(); - _ = target.LLVMInitializeAllAsmPrinters(); - _ = target.LLVMInitializeAllAsmParsers(); + target.LLVMInitializeAllTargetMCs(); + target.LLVMInitializeAllTargets(); + target.LLVMInitializeAllAsmPrinters(); + target.LLVMInitializeAllAsmParsers(); const module: types.LLVMModuleRef = core.LLVMModuleCreateWithName("module"); const builder = core.LLVMCreateBuilder(); @@ -64,10 +65,11 @@ pub const CodeGen = struct { // Generate code const triple = target_m.LLVMGetDefaultTargetTriple(); var target_ref: types.LLVMTargetRef = undefined; - var message: [*c]u8 = undefined; - _ = target_m.LLVMGetTargetFromTriple(triple, &target_ref, &message); - std.debug.print("Target output: {s}.\n", .{message}); - core.LLVMDisposeMessage(message); + var message: ?[*c]u8 = undefined; + const xd = target_m.LLVMGetTargetFromTriple(triple, &target_ref, &message.?); + std.debug.print("XD: {any}.\n", .{xd}); + // std.debug.print("Target output: {any}.\n", .{message}); + // core.LLVMDisposeMessage(message); const target_machine = target_m.LLVMCreateTargetMachine( target_ref, triple, @@ -89,9 +91,9 @@ pub const CodeGen = struct { ); std.debug.print("Object file generated: {s}\n", .{filename}); - _ = analysis.LLVMVerifyModule(self.llvm_module, types.LLVMVerifierFailureAction.LLVMAbortProcessAction, &message); - std.debug.print("Verification output: {s}.\n", .{message}); - core.LLVMDisposeMessage(message); + _ = analysis.LLVMVerifyModule(self.llvm_module, types.LLVMVerifierFailureAction.LLVMAbortProcessAction, &message.?); + // std.debug.print("Verification output: {any}.\n", .{message}); + // core.LLVMDisposeMessage(message); // Clean up LLVM resources defer core.LLVMDisposeBuilder(self.builder); |