zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 73256dda91d0d5b3d13016d15f2c4465a69cd7d4 (tree)
parent a9df637fb11713c41024e6f3b6a1f4f86c33b09e
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Tue,  4 Feb 2020 15:04:11 -0500

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

Diffstat:
Mbuild.zig | 19++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)

diff --git 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); } } }