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

master
Andrew Kelley 2020-02-04 15:04:11 -05:00
parent a9df637fb1
commit 73256dda91
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
1 changed files with 12 additions and 7 deletions

View File

@ -230,15 +230,20 @@ fn findLLVM(b: *Builder, llvm_config_exe: []const u8) !LibraryDep {
while (it.next()) |lib_arg| { while (it.next()) |lib_arg| {
if (mem.startsWith(u8, lib_arg, "-l")) { if (mem.startsWith(u8, lib_arg, "-l")) {
try result.system_libs.append(lib_arg[2..]); try result.system_libs.append(lib_arg[2..]);
} else { } else if (fs.path.isAbsolute(lib_arg)) {
if (fs.path.isAbsolute(lib_arg)) { if (mem.endsWith(u8, lib_arg, "libz.so")) {
try result.libs.append(lib_arg); // 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 { } else {
if (mem.endsWith(u8, lib_arg, ".lib")) { try result.libs.append(lib_arg);
lib_arg = lib_arg[0 .. lib_arg.len - 4];
}
try result.system_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);
} }
} }
} }