From 243e3cc6947ada3d12b0dde88f51aed64774799e Mon Sep 17 00:00:00 2001 From: Luna Date: Sat, 21 Sep 2019 12:31:47 -0300 Subject: [PATCH] fix llvm linking --- build.zig | 2 ++ src/codegen.zig | 6 ++++-- src/llvm.zig | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/build.zig b/build.zig index d7502d4..020f6cf 100644 --- a/build.zig +++ b/build.zig @@ -6,7 +6,9 @@ pub fn build(b: *Builder) void { exe.setBuildMode(mode); exe.install(); + exe.linkSystemLibrary("c"); exe.linkSystemLibrary("LLVM-8"); + exe.linkSystemLibrary("stdc++"); const run_cmd = exe.run(); run_cmd.step.dependOn(b.getInstallStep()); diff --git a/src/codegen.zig b/src/codegen.zig index 3e5661c..295bf85 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -62,10 +62,12 @@ pub const Codegen = struct { } pub fn gen(self: *Codegen, root: *ast.Node) !void { + //std.debug.warn("cgen: init native target\n"); + //_ = llvm.LLVMInitializeNativeTarget(); std.debug.warn("cgen: start gen\n"); - var mod = llvm.LLVMModuleCreateWithName(c"awoo"); + + var mod = llvm.LLVMModuleCreateWithName(c"awoo").?; defer llvm.LLVMDisposeModule(mod); - std.debug.warn("cgen: got mod\n"); for (root.Root.toSlice()) |child| { std.debug.warn("cgen: gen child {}\n", child); diff --git a/src/llvm.zig b/src/llvm.zig index 8e79786..f849857 100644 --- a/src/llvm.zig +++ b/src/llvm.zig @@ -6,6 +6,11 @@ pub const llvm = @cImport({ @cInclude("llvm-c/Target.h"); @cInclude("llvm-c/Analysis.h"); @cInclude("llvm-c/BitWriter.h"); + + @cDefine("_GNU_SOURCE", {}); + @cDefine("__STDC_CONSTANT_MACROS", {}); + @cDefine("__STDC_FORMAT_MACROS", {}); + @cDefine("__STDC_LIMIT_MACROS", {}); }); usingnamespace llvm;