termux-packages/packages/swift/swiftpm-Sources-Build-BuildPlan.swift.patch
2021-09-27 17:16:31 +05:30

92 lines
4.3 KiB
Diff

commit 74a8de7bccc0c40381b63a79143d4ca945c0ed68
Date: Thu Aug 5 23:30:59 2021 +0530
Change the order of Workspace toolchain C/Swift flags to match the command-line (#3636)
* Move Workspace UserToolchain C/Swift flags to just before the command-line flags,
so both are after the package's internal flags.
This makes sure internal package paths are searched first, before external flags
are applied.
diff --git a/swiftpm/Sources/Build/BuildPlan.swift b/swiftpm/Sources/Build/BuildPlan.swift
index 78072f5b..fb78b54f 100644
--- a/swiftpm/Sources/Build/BuildPlan.swift
+++ b/swiftpm/Sources/Build/BuildPlan.swift
@@ -330,7 +330,6 @@ public final class ClangTargetBuildDescription {
args += ["-fobjc-arc"]
}
args += buildParameters.targetTripleArgs(for: target)
- args += buildParameters.toolchain.extraCCFlags
args += ["-g"]
if buildParameters.triple.isWindows() {
args += ["-gcodeview"]
@@ -373,6 +372,7 @@ public final class ClangTargetBuildDescription {
args += ["-include", resourceAccessorHeaderFile.pathString]
}
+ args += buildParameters.toolchain.extraCCFlags
// User arguments (from -Xcc and -Xcxx below) should follow generated arguments to allow user overrides
args += buildParameters.flags.cCompilerFlags
@@ -724,7 +724,6 @@ public final class SwiftTargetBuildDescription {
}
args += buildParameters.indexStoreArguments(for: target)
- args += buildParameters.toolchain.extraSwiftCFlags
args += optimizationArguments
args += testingArguments
args += ["-g"]
@@ -791,6 +790,7 @@ public final class SwiftTargetBuildDescription {
args += ["-emit-module-interface-path", parseableModuleInterfaceOutputPath.pathString]
}
+ args += buildParameters.toolchain.extraSwiftCFlags
// User arguments (from -Xswiftc) should follow generated arguments to allow user overrides
args += buildParameters.swiftCompilerFlags
return args
@@ -907,7 +907,6 @@ public final class SwiftTargetBuildDescription {
result += ["-swift-version", swiftVersion.rawValue]
result += buildParameters.indexStoreArguments(for: target)
- result += buildParameters.toolchain.extraSwiftCFlags
result += optimizationArguments
result += testingArguments
result += ["-g"]
@@ -919,6 +918,7 @@ public final class SwiftTargetBuildDescription {
result += buildParameters.sanitizers.compileSwiftFlags()
result += ["-parseable-output"]
result += self.buildSettingsFlags()
+ result += buildParameters.toolchain.extraSwiftCFlags
result += buildParameters.swiftCompilerFlags
return result
}
@@ -1165,7 +1165,6 @@ public final class ProductBuildDescription {
/// The arguments to link and create this product.
public func linkArguments() throws -> [String] {
var args = [buildParameters.toolchain.swiftCompiler.pathString]
- args += buildParameters.toolchain.extraSwiftCFlags
args += buildParameters.sanitizers.linkSwiftFlags()
args += additionalFlags
@@ -1286,6 +1285,7 @@ public final class ProductBuildDescription {
// building for Darwin in debug configuration.
args += swiftASTs.flatMap{ ["-Xlinker", "-add_ast_path", "-Xlinker", $0.pathString] }
+ args += buildParameters.toolchain.extraSwiftCFlags
// User arguments (from -Xlinker and -Xswiftc) should follow generated arguments to allow user overrides
args += buildParameters.linkerFlags
args += stripInvalidArguments(buildParameters.swiftCompilerFlags)
diff --git a/swiftpm/Utilities/bootstrap b/swiftpm/Utilities/bootstrap
index 1f673fdd..e51616cb 100755
--- a/swiftpm/Utilities/bootstrap
+++ b/swiftpm/Utilities/bootstrap
@@ -800,6 +800,7 @@ def get_swiftpm_flags(args):
if 'ANDROID_DATA' in os.environ or (args.cross_compile_hosts and re.match(
'android-', args.cross_compile_hosts)):
build_flags.extend(["-Xswiftc", "-Xcc", "-Xswiftc", "-U_GNU_SOURCE"])
+ build_flags.extend(["-Xlinker", "-landroid-spawn"])
# On ELF platforms, remove the host toolchain's stdlib absolute rpath from
# installed executables and shared libraries.