authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-04 15:04:11-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-04 15:04:11-05:00
log73256dda91d0d5b3d13016d15f2c4465a69cd7d4
tree94162e4d45ddfffd19bcdcf833d972d3f754a5c9
parenta9df637fb11713c41024e6f3b6a1f4f86c33b09e
signaturelock-open Commit is signed but in an unrecognized format.

work around LLVM 10 llvm-config giving absolute path to libz.so


1 files changed, 12 insertions(+), 7 deletions(-)

build.zig+12-7
......@@ -230,15 +230,20 @@ fn findLLVM(b: *Builder, llvm_config_exe: []const u8) !LibraryDep {
230230 while (it.next()) |lib_arg| {
231231 if (mem.startsWith(u8, lib_arg, "-l")) {
232232 try result.system_libs.append(lib_arg[2..]);
233 } else {
234 if (fs.path.isAbsolute(lib_arg)) {
235 try result.libs.append(lib_arg);
233 } else if (fs.path.isAbsolute(lib_arg)) {
234 if (mem.endsWith(u8, lib_arg, "libz.so")) {
235 // llvm-config version 10 started giving an absolute path to zlib as
236 // a shared object, which fails to deal with rpaths correctly. Here
237 // we change it to a normal -lz
238 try result.system_libs.append("z");
236239 } else {
237 if (mem.endsWith(u8, lib_arg, ".lib")) {
238 lib_arg = lib_arg[0 .. lib_arg.len - 4];
239 }
240 try result.system_libs.append(lib_arg);
240 try result.libs.append(lib_arg);
241 }
242 } else {
243 if (mem.endsWith(u8, lib_arg, ".lib")) {
244 lib_arg = lib_arg[0 .. lib_arg.len - 4];
241245 }
246 try result.system_libs.append(lib_arg);
242247 }
243248 }
244249 }