From 73256dda91d0d5b3d13016d15f2c4465a69cd7d4 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 4 Feb 2020 15:04:11 -0500 Subject: [PATCH] work around LLVM 10 llvm-config giving absolute path to libz.so --- build.zig | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/build.zig b/build.zig index aadc3f6020..b3b81339b5 100644 --- a/build.zig +++ b/build.zig @@ -230,15 +230,20 @@ fn findLLVM(b: *Builder, llvm_config_exe: []const u8) !LibraryDep { while (it.next()) |lib_arg| { if (mem.startsWith(u8, lib_arg, "-l")) { try result.system_libs.append(lib_arg[2..]); - } else { - if (fs.path.isAbsolute(lib_arg)) { - try result.libs.append(lib_arg); + } else if (fs.path.isAbsolute(lib_arg)) { + if (mem.endsWith(u8, lib_arg, "libz.so")) { + // llvm-config version 10 started giving an absolute path to zlib as + // a shared object, which fails to deal with rpaths correctly. Here + // we change it to a normal -lz + try result.system_libs.append("z"); } else { - if (mem.endsWith(u8, lib_arg, ".lib")) { - lib_arg = lib_arg[0 .. lib_arg.len - 4]; - } - try result.system_libs.append(lib_arg); + try result.libs.append(lib_arg); } + } else { + if (mem.endsWith(u8, lib_arg, ".lib")) { + lib_arg = lib_arg[0 .. lib_arg.len - 4]; + } + try result.system_libs.append(lib_arg); } } }