@@ -2100,10 +2100,42 @@ final class SwiftDriverTests: XCTestCase {
21002100 XCTAssertFalse ( cmd. contains ( . flag( " -dylib " ) ) )
21012101 XCTAssertFalse ( cmd. contains ( . flag( " -shared " ) ) )
21022102 }
2103+
2104+ do {
2105+ // executable linking linux static stdlib with musl
2106+ var driver = try Driver ( args: commonArgs + [
2107+ " -emit-executable " , " -Osize " , " -static-stdlib " , " -static-executable " , " -target " , " x86_64-unknown-linux-musl "
2108+ ] , env: env)
2109+ let plannedJobs = try driver. planBuild ( )
2110+
2111+ XCTAssertEqual ( plannedJobs. count, 4 )
2112+
2113+ let autolinkExtractJob = plannedJobs [ 2 ]
2114+ XCTAssertEqual ( autolinkExtractJob. kind, . autolinkExtract)
2115+
2116+ let autolinkCmd = autolinkExtractJob. commandLine
2117+ XCTAssertTrue ( commandContainsTemporaryPath ( autolinkCmd, " foo.o " ) )
2118+ XCTAssertTrue ( commandContainsTemporaryPath ( autolinkCmd, " bar.o " ) )
2119+ XCTAssertTrue ( commandContainsTemporaryPath ( autolinkCmd, " Test.autolink " ) )
2120+
2121+ let linkJob = plannedJobs [ 3 ]
2122+ let cmd = linkJob. commandLine
2123+ XCTAssertTrue ( cmd. contains ( . flag( " -o " ) ) )
2124+ XCTAssertTrue ( commandContainsTemporaryPath ( cmd, " foo.o " ) )
2125+ XCTAssertTrue ( commandContainsTemporaryPath ( cmd, " bar.o " ) )
2126+ XCTAssertTrue ( cmd. contains ( . flag( " --start-group " ) ) )
2127+ XCTAssertTrue ( cmd. contains ( . flag( " --end-group " ) ) )
2128+ XCTAssertTrue ( cmd. contains ( . flag( " -Os " ) ) )
2129+ XCTAssertTrue ( cmd. contains ( . flag( " -static " ) ) )
2130+ XCTAssertEqual ( linkJob. outputs [ 0 ] . file, try VirtualPath ( path: " Test " ) )
2131+
2132+ XCTAssertFalse ( cmd. contains ( . flag( " -dylib " ) ) )
2133+ XCTAssertFalse ( cmd. contains ( . flag( " -shared " ) ) )
2134+ }
21032135 #endif
21042136
21052137 do {
2106- // static WASM linking
2138+ // static Wasm linking
21072139 var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -static " , " -target " , " wasm32-unknown-wasi " ] , env: env)
21082140 let plannedJobs = try driver. planBuild ( )
21092141
@@ -2135,7 +2167,7 @@ final class SwiftDriverTests: XCTestCase {
21352167 try withTemporaryDirectory { path in
21362168 try localFileSystem. writeFileContents (
21372169 path. appending ( components: " wasi " , " static-executable-args.lnk " ) ) { $0 <<< " garbage " }
2138- // WASM executable linking
2170+ // Wasm executable linking
21392171 var driver = try Driver ( args: commonArgs + [ " -emit-executable " , " -Ounchecked " ,
21402172 " -target " , " wasm32-unknown-wasi " ,
21412173 " -resource-dir " , path. pathString,
0 commit comments