diff --git a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift index a4a735f49..423f41770 100644 --- a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift @@ -291,6 +291,10 @@ extension GenericUnixToolchain { } } + // Use compiler-rt for Swift's numeric conversion symbols + commandLine.appendFlag("-rtlib=compiler-rt") + commandLine.appendFlag("-lunwind") + // Run clang++ in verbose mode if "-v" is set try commandLine.appendLast(.v, from: &parsedOptions) diff --git a/Tests/SwiftDriverTests/SwiftDriverTests.swift b/Tests/SwiftDriverTests/SwiftDriverTests.swift index 1e5a77f20..e34df498f 100644 --- a/Tests/SwiftDriverTests/SwiftDriverTests.swift +++ b/Tests/SwiftDriverTests/SwiftDriverTests.swift @@ -1993,6 +1993,7 @@ final class SwiftDriverTests: XCTestCase { XCTAssertTrue(commandContainsTemporaryPath(cmd, "bar.o")) XCTAssertTrue(commandContainsTemporaryResponsePath(cmd, "Test.autolink")) XCTAssertEqual(linkJob.outputs[0].file, try VirtualPath(path: "libTest.so")) + XCTAssertTrue(cmd.contains(.flag("-rtlib=compiler-rt"))) XCTAssertFalse(cmd.contains(.flag("-dylib"))) XCTAssertFalse(cmd.contains(.flag("-static")))