Commit e0623df9f7

Andrew Kelley <andrew@ziglang.org>
2024-10-22 06:49:58
Compilation.create: skip libc_installation on darwin
If the "is darwin" check is moved below the libc_installation check below, error.LibCInstallationMissingCrtDir is returned from lci.resolveCrtPaths(). This should be revisited because it makes sense to check libc_installation first even on darwin. Anyway for now this more closely matches logic from master branch.
1 parent f2efe05
Changed files (1)
src/Compilation.zig
@@ -1769,7 +1769,15 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil
             // If linking against host libc installation, instead queue up jobs
             // for loading those files in the linker.
             if (comp.config.link_libc and is_exe_or_dyn_lib) {
-                if (comp.libc_installation) |lci| {
+                // If the "is darwin" check is moved below the libc_installation check below,
+                // error.LibCInstallationMissingCrtDir is returned from lci.resolveCrtPaths().
+                if (target.isDarwin()) {
+                    switch (target.abi) {
+                        .none, .simulator, .macabi => {},
+                        else => return error.LibCUnavailable,
+                    }
+                    // TODO delete logic from MachO flush() and queue up tasks here instead.
+                } else if (comp.libc_installation) |lci| {
                     const basenames = LibCInstallation.CrtBasenames.get(.{
                         .target = target,
                         .link_libc = comp.config.link_libc,