Skip to content

Commit 88c12e9

Browse files
authored
Merge pull request #295 from swiftwasm/release/5.3
[pull] swiftwasm-release/5.3 from release/5.3
2 parents 8a51218 + 2bec212 commit 88c12e9

File tree

6 files changed

+13
-6
lines changed

6 files changed

+13
-6
lines changed

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ if ProcessInfo.processInfo.environment["SWIFTPM_LLBUILD_FWK"] == nil {
247247

248248
if ProcessInfo.processInfo.environment["SWIFTCI_USE_LOCAL_DEPS"] == nil {
249249
package.dependencies += [
250-
.package(url: "https://github.com/apple/swift-tools-support-core.git", .branch("master")),
250+
.package(url: "https://github.com/apple/swift-tools-support-core.git", .branch("release/5.3")),
251251
]
252252
} else {
253253
package.dependencies += [

Sources/Build/BuildPlan.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,11 +1042,11 @@ public final class ProductBuildDescription {
10421042
}
10431043
case .executable:
10441044
// Link the Swift stdlib statically, if requested.
1045-
//
1046-
// FIXME: This does not work for linux yet (SR-648).
10471045
if buildParameters.shouldLinkStaticSwiftStdlib {
10481046
if buildParameters.triple.isDarwin() {
10491047
diagnostics.emit(.swiftBackDeployError)
1048+
} else if buildParameters.triple.isLinux() {
1049+
args += ["-static-stdlib"]
10501050
}
10511051
}
10521052
args += ["-emit-executable"]

Sources/PackageDescription/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ foreach(PACKAGE_DESCRIPTION_VERSION 4 4_2)
4747
if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
4848
target_link_libraries(PD${PACKAGE_DESCRIPTION_VERSION} PRIVATE
4949
Foundation)
50+
target_link_options(PD${PACKAGE_DESCRIPTION_VERSION} PRIVATE
51+
"SHELL:-no-toolchain-stdlib-rpath")
5052
endif()
5153

5254
if(CMAKE_HOST_SYSTEM_NAME STREQUAL Darwin)

Sources/PackageLoading/PackageBuilder.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -829,12 +829,12 @@ public final class PackageBuilder {
829829
func buildConditions(from condition: PackageConditionDescription?) -> [PackageConditionProtocol] {
830830
var conditions: [PackageConditionProtocol] = []
831831

832-
if let config = condition?.config.map({ BuildConfiguration(rawValue: $0)! }) {
832+
if let config = condition?.config.flatMap({ BuildConfiguration(rawValue: $0) }) {
833833
let condition = ConfigurationCondition(configuration: config)
834834
conditions.append(condition)
835835
}
836836

837-
if let platforms = condition?.platformNames.map({ platformRegistry.platformByName[$0]! }), !platforms.isEmpty {
837+
if let platforms = condition?.platformNames.flatMap({ platformRegistry.platformByName[$0] }), !platforms.isEmpty {
838838
let condition = PlatformsCondition(platforms: platforms)
839839
conditions.append(condition)
840840
}

Tests/BuildTests/BuildPlanTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ final class BuildPlanTests: XCTestCase {
144144
let linkArguments = [
145145
"/fake/path/to/swiftc", "-L", "/path/to/build/debug",
146146
"-o", "/path/to/build/debug/exe", "-module-name", "exe",
147-
"-emit-executable",
147+
"-static-stdlib", "-emit-executable",
148148
"-Xlinker", "-rpath=$ORIGIN",
149149
"@/path/to/build/debug/exe.product/Objects.LinkFileList",
150150
"-target", defaultTargetTriple,

Utilities/bootstrap

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,11 @@ def get_swiftpm_flags(args):
610610
elif cross_compile_hosts:
611611
error("cannot cross-compile for %s" % cross_compile_hosts)
612612

613+
# On ELF platforms, remove the host toolchain's stdlib absolute rpath from
614+
# installed executables and shared libraries.
615+
if platform.system() != "Darwin" and args.command == 'install':
616+
build_flags.extend(["-Xswiftc", "-no-toolchain-stdlib-rpath"])
617+
613618
return build_flags
614619

615620
if __name__ == '__main__':

0 commit comments

Comments
 (0)