Commit f40c6a5c47

Michael Dusan <michael.dusan@gmail.com>
2023-09-15 07:05:14
macho: add verbose args for -platform_version
1 parent 2adb932
Changed files (1)
src
link
MachO
src/link/MachO/zld.zig
@@ -235,6 +235,23 @@ pub fn linkWithZld(
                 }
             }
 
+            {
+                const platform = Platform.fromTarget(options.target);
+                try argv.append("-platform_version");
+                try argv.append(@tagName(platform.os_tag));
+                try argv.append(try std.fmt.allocPrint(arena, "{}", .{platform.version}));
+
+                const sdk_version: ?std.SemanticVersion = if (options.sysroot) |path|
+                    load_commands.inferSdkVersionFromSdkPath(path)
+                else
+                    null;
+                if (sdk_version) |ver| {
+                    try argv.append(try std.fmt.allocPrint(arena, "{d}.{d}", .{ ver.major, ver.minor }));
+                } else {
+                    try argv.append(try std.fmt.allocPrint(arena, "{}", .{platform.version}));
+                }
+            }
+
             if (options.sysroot) |syslibroot| {
                 try argv.append("-syslibroot");
                 try argv.append(syslibroot);
@@ -338,6 +355,20 @@ pub fn linkWithZld(
             }
 
             Compilation.dump_argv(argv.items);
+
+            print: {
+                std.debug.getStderrMutex().lock();
+                defer std.debug.getStderrMutex().unlock();
+                const stderr = std.io.getStdErr().writer();
+                if (options.lib_dirs.len != 0) {
+                    nosuspend stderr.print("Library search paths:\n", .{}) catch break :print;
+                    for (options.lib_dirs) |dir| nosuspend stderr.print("\t{s}\n", .{dir}) catch break :print;
+                }
+                if (options.framework_dirs.len != 0) {
+                    nosuspend stderr.print("Framework search paths:\n", .{}) catch break :print;
+                    for (options.framework_dirs) |dir| nosuspend stderr.print("\t{s}\n", .{dir}) catch break :print;
+                }
+            }
         }
 
         var dependent_libs = std.fifo.LinearFifo(MachO.DylibReExportInfo, .Dynamic).init(arena);