Commit f71590d4c4
Changed files (1)
build.zig
@@ -326,7 +326,12 @@ pub fn build(b: *std.Build) !void {
try addCmakeCfgOptionsToExe(b, cfg, exe, use_zig_libcxx);
} else {
// Here we are -Denable-llvm but no cmake integration.
- try addStaticLlvmOptionsToModule(exe.root_module);
+ try addStaticLlvmOptionsToModule(exe.root_module, .{
+ .llvm_has_m68k = llvm_has_m68k,
+ .llvm_has_csky = llvm_has_csky,
+ .llvm_has_arc = llvm_has_arc,
+ .llvm_has_xtensa = llvm_has_xtensa,
+ });
}
if (target.result.os.tag == .windows) {
// LLVM depends on networking as of version 18.
@@ -809,7 +814,12 @@ fn addCmakeCfgOptionsToExe(
}
}
-fn addStaticLlvmOptionsToModule(mod: *std.Build.Module) !void {
+fn addStaticLlvmOptionsToModule(mod: *std.Build.Module, options: struct {
+ llvm_has_m68k: bool,
+ llvm_has_csky: bool,
+ llvm_has_arc: bool,
+ llvm_has_xtensa: bool,
+}) !void {
// Adds the Zig C++ sources which both stage1 and stage2 need.
//
// We need this because otherwise zig_clang_cc1_main.cpp ends up pulling
@@ -833,6 +843,22 @@ fn addStaticLlvmOptionsToModule(mod: *std.Build.Module) !void {
mod.linkSystemLibrary(lib_name, .{});
}
+ if (options.llvm_has_m68k) for (llvm_libs_m68k) |lib_name| {
+ mod.linkSystemLibrary(lib_name, .{});
+ };
+
+ if (options.llvm_has_csky) for (llvm_libs_csky) |lib_name| {
+ mod.linkSystemLibrary(lib_name, .{});
+ };
+
+ if (options.llvm_has_arc) for (llvm_libs_arc) |lib_name| {
+ mod.linkSystemLibrary(lib_name, .{});
+ };
+
+ if (options.llvm_has_xtensa) for (llvm_libs_xtensa) |lib_name| {
+ mod.linkSystemLibrary(lib_name, .{});
+ };
+
mod.linkSystemLibrary("z", .{});
mod.linkSystemLibrary("zstd", .{});
@@ -1321,6 +1347,33 @@ const llvm_libs = [_][]const u8{
"LLVMSupport",
"LLVMDemangle",
};
+const llvm_libs_m68k = [_][]const u8{
+ "LLVMM68kDisassembler",
+ "LLVMM68kAsmParser",
+ "LLVMM68kCodeGen",
+ "LLVMM68kDesc",
+ "LLVMM68kInfo",
+};
+const llvm_libs_csky = [_][]const u8{
+ "LLVMCSKYDisassembler",
+ "LLVMCSKYAsmParser",
+ "LLVMCSKYCodeGen",
+ "LLVMCSKYDesc",
+ "LLVMCSKYInfo",
+};
+const llvm_libs_arc = [_][]const u8{
+ "LLVMARCDisassembler",
+ "LLVMARCCodeGen",
+ "LLVMARCDesc",
+ "LLVMARCInfo",
+};
+const llvm_libs_xtensa = [_][]const u8{
+ "LLVMXtensaDisassembler",
+ "LLVMXtensaAsmParser",
+ "LLVMXtensaCodeGen",
+ "LLVMXtensaDesc",
+ "LLVMXtensaInfo",
+};
fn generateLangRef(b: *std.Build) std.Build.LazyPath {
const doctest_exe = b.addExecutable(.{