From 82562b205f9d99c27c4d5224311734e141bf2fda Mon Sep 17 00:00:00 2001 From: haze Date: Wed, 15 Jul 2020 22:37:04 -0400 Subject: [PATCH] On darwin, only add the self exe to the cache hash for compiler id (#5880) Now that Big Sur does not have system libraries on the filesystem, zig can no longer read them and add them to the cache hash for the compiler id. This changes it so that only the first library path returned by os_self_exe_shared_libs is added to the cache hash under Darwin. I looked into methods on getting the system version to keep parity with older versions, but @fengb reported that this works on Catalina (a version behind Big Sur) Signed-off-by: Haze Booth --- src/compiler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler.cpp b/src/compiler.cpp index 8294fc787189a88d17b77816813e3372ea952683..6c477a1506fa2939cc94bc6edecb41bec5b3a75b 100644 --- a/src/compiler.cpp +++ b/src/compiler.cpp @@ -38,11 +38,19 @@ Error get_compiler_id(Buf **result) { ZigList lib_paths = {}; if ((err = os_self_exe_shared_libs(lib_paths))) return err; + #if defined(ZIG_OS_DARWIN) + // only add the self exe path on mac os + Buf *lib_path = lib_paths.at(0); + if ((err = cache_add_file(ch, lib_path))) + return err; + #else for (size_t i = 0; i < lib_paths.length; i += 1) { Buf *lib_path = lib_paths.at(i); if ((err = cache_add_file(ch, lib_path))) return err; } + #endif + if ((err = cache_final(ch, &saved_compiler_id))) return err; -- 2.54.0