@@ -13,6 +13,7 @@ public struct Error: LocalizedError {
1313}
1414
1515public func runProgramEnv( _ args: String ... , quiet: Bool = false , env: [ String : String ] ? ) throws {
16+ print ( " \( args. joined ( separator: " " ) ) " )
1617 let process = Process ( )
1718 process. executableURL = URL ( fileURLWithPath: " /usr/bin/env " )
1819 process. arguments = args
@@ -40,6 +41,7 @@ public func runProgramEnv(_ args: String..., quiet: Bool = false, env: [String:
4041}
4142
4243public func runProgram( _ args: String ... , quiet: Bool = false ) throws {
44+ print ( " \( args. joined ( separator: " " ) ) " )
4345 let process = Process ( )
4446 process. executableURL = URL ( fileURLWithPath: " /usr/bin/env " )
4547 process. arguments = args
@@ -295,10 +297,18 @@ struct BuildSwiftlyRelease: AsyncParsableCommand {
295297 let sdkName = " swift-6.0.3-RELEASE_static-linux-0.0.1 "
296298
297299 // FIXME: Adjust the URL and checksum to match the toolchain that is being used
300+
301+ #if arch(arm64)
302+ let arch = " aarch64 "
303+ #else
304+ let arch = " x86_64 "
305+ #endif
306+
298307 try runProgram ( swift, " sdk " , " install " , " https://download.swift.org/swift-6.0.3-release/static-sdk/swift-6.0.3-RELEASE/swift-6.0.3-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz " , " --checksum " , " 67f765e0030e661a7450f7e4877cfe008db4f57f177d5a08a6e26fd661cdd0bd " )
299308
300309 var customEnv = ProcessInfo . processInfo. environment
301- customEnv [ " CC " ] = " musl-gcc "
310+ customEnv [ " CC " ] = " \( cwd) /Tools/build-swiftly-release/musl-clang "
311+ customEnv [ " MUSL_PREFIX " ] = " \( FileManager . default. homeDirectoryForCurrentUser. path) /.swiftpm/swift-sdks/ \( sdkName) .artifactbundle/ \( sdkName) /swift-linux-musl/musl-1.2.5.sdk/ \( arch) /usr "
302312
303313 try runProgramEnv (
304314 " ./configure " ,
@@ -328,18 +338,9 @@ struct BuildSwiftlyRelease: AsyncParsableCommand {
328338
329339 FileManager . default. changeCurrentDirectoryPath ( cwd)
330340
331- #if arch(arm64)
332- let muslTriple = " aarch64-swift-linux-musl "
333- #else
334- let muslTriple = " x86_64-swift-linux-musl "
335- #endif
336-
337- do {
338- try runProgram ( swift, " build " , " --swift-sdk " , sdkName, " --triple= \( muslTriple) " , " --product=swiftly " , " --pkg-config-path= \( pkgConfigPath) /lib/pkgconfig " , " --static-swift-stdlib " , " --configuration=release " )
339- } catch {
340- try runProgram ( swift, " sdk " , " remove " , sdkName)
341- throw error
342- }
341+ // FIXME: running this twice fixes certain linker errors
342+ try ? runProgram ( swift, " build " , " --swift-sdk " , sdkName, " --product=swiftly " , " --pkg-config-path= \( pkgConfigPath) /lib/pkgconfig " , " --static-swift-stdlib " , " --configuration=release " )
343+ try runProgram ( swift, " build " , " --swift-sdk " , sdkName, " --product=swiftly " , " --pkg-config-path= \( pkgConfigPath) /lib/pkgconfig " , " --static-swift-stdlib " , " --configuration=release " )
343344 try runProgram ( swift, " sdk " , " remove " , sdkName)
344345
345346 let releaseDir = cwd + " /.build/release "
0 commit comments