From c9908f39337aabe1e8dd71c6cd3677b222e4ec8d Mon Sep 17 00:00:00 2001 From: Lucas Marcal Date: Fri, 24 Feb 2023 18:23:26 -0300 Subject: [PATCH 1/2] Fix toolchain load. Xcode 14.3 introduced some AssetRuntime.sdk folders which Buck interprets as a broken sdk folder. This PR adds a filter that ignores AssetRuntime folders. --- .../buck/apple/toolchain/impl/AppleSdkDiscovery.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/com/facebook/buck/apple/toolchain/impl/AppleSdkDiscovery.java b/src/com/facebook/buck/apple/toolchain/impl/AppleSdkDiscovery.java index 88ba9fee451..6cab7cfd308 100644 --- a/src/com/facebook/buck/apple/toolchain/impl/AppleSdkDiscovery.java +++ b/src/com/facebook/buck/apple/toolchain/impl/AppleSdkDiscovery.java @@ -138,6 +138,11 @@ public static ImmutableMap discoverAppleSdkPaths( continue; } + if (sdkDir.getFileName().toString().startsWith("AssetRuntime")) { + LOG.debug("SDK at path %s is AssetRuntime descriptor", sdkDir); + continue; + } + ImmutableList discoveredSdks = buildSdksFromPath(sdkDir, xcodeToolchains, defaultToolchain, appleConfig); for (AppleSdk sdk : discoveredSdks) { From ae7edc697c7b980fadb4b5f8308b769f51b935f7 Mon Sep 17 00:00:00 2001 From: Lucas Marcal Date: Tue, 28 Feb 2023 15:55:21 -0300 Subject: [PATCH 2/2] Remove invalid parameters when calling swift-stdlib-step --- src/com/facebook/buck/apple/AppleBundle.java | 4 ---- .../buck/apple/AppleToolchainDescription.java | 3 --- src/com/facebook/buck/apple/SwiftStdlibStep.java | 7 ------- .../buck/apple/toolchain/AppleCxxPlatform.java | 1 - .../buck/apple/toolchain/impl/AppleCxxPlatforms.java | 11 +---------- 5 files changed, 1 insertion(+), 25 deletions(-) diff --git a/src/com/facebook/buck/apple/AppleBundle.java b/src/com/facebook/buck/apple/AppleBundle.java index 822c0f1529f..66c8a3b46d6 100644 --- a/src/com/facebook/buck/apple/AppleBundle.java +++ b/src/com/facebook/buck/apple/AppleBundle.java @@ -135,8 +135,6 @@ public class AppleBundle extends AbstractBuildRule @AddToRuleKey private final Tool codesign; @AddToRuleKey private final Optional swiftStdlibTool; - - @AddToRuleKey private final Optional bitcodeStripTool; @AddToRuleKey private final ImmutableList codesignFlags; @AddToRuleKey private final Optional codesignIdentitySubjectName; @@ -260,7 +258,6 @@ public class AppleBundle extends AbstractBuildRule appleCxxPlatform.getSwiftPlatform().isPresent() ? appleCxxPlatform.getSwiftPlatform().get().getSwiftStdlibTool() : Optional.empty(); - this.bitcodeStripTool = appleCxxPlatform.getBitcodeStripTool(); this.skipCopyingSwiftStdlib = skipCopyingSwiftStdlib; this.codesignTimeout = codesignTimeout; @@ -1114,7 +1111,6 @@ public void addSwiftStdlibStepIfNeeded( subfolderPaths, codeSignIdentitySupplier, withDownwardApi, - bitcodeStripTool.get().getCommandPrefix(resolver), swiftStdlibConcurrencyLibsOnly)); } } diff --git a/src/com/facebook/buck/apple/AppleToolchainDescription.java b/src/com/facebook/buck/apple/AppleToolchainDescription.java index cdad4a6430d..9836e4be28d 100644 --- a/src/com/facebook/buck/apple/AppleToolchainDescription.java +++ b/src/com/facebook/buck/apple/AppleToolchainDescription.java @@ -174,8 +174,6 @@ public BuildRule createBuildRule( .setAppleSdkPaths(sdkPaths) .setAppleSdk(sdk) .setWatchKitStubBinary(args.getWatchKitStubBinary()) - .setBitcodeStripTool(args.getBitcodeStripTool() - .map(path -> Tools.resolveTool(path, actionGraphBuilder))) .build(); return new AppleToolchainBuildRule( @@ -313,6 +311,5 @@ interface AbstractAppleToolchainDescriptionArg extends BuildRuleArg { /** WatchKit stub binary (WK) */ Optional getWatchKitStubBinary(); - Optional getBitcodeStripTool(); } } diff --git a/src/com/facebook/buck/apple/SwiftStdlibStep.java b/src/com/facebook/buck/apple/SwiftStdlibStep.java index cb9049f232b..57e20753a89 100644 --- a/src/com/facebook/buck/apple/SwiftStdlibStep.java +++ b/src/com/facebook/buck/apple/SwiftStdlibStep.java @@ -60,8 +60,6 @@ class SwiftStdlibStep implements Step { private final Optional> codeSignIdentitySupplier; - private final ImmutableList bitcodeStripToolPath; - private final boolean swiftStdlibConcurrencyLibsOnly; public SwiftStdlibStep( @@ -74,7 +72,6 @@ public SwiftStdlibStep( Iterable additionalFoldersToScan, Optional> codeSignIdentitySupplier, boolean withDownwardApi, - ImmutableList bitcodeStripToolPath, boolean swiftStdlibConcurrencyLibsOnly) { this.workingDirectory = workingDirectory; this.sdkPath = sdkPath; @@ -85,7 +82,6 @@ public SwiftStdlibStep( this.binaryPathToScan = binaryPathToScan; this.additionalFoldersToScan = additionalFoldersToScan; this.codeSignIdentitySupplier = codeSignIdentitySupplier; - this.bitcodeStripToolPath = bitcodeStripToolPath; this.swiftStdlibConcurrencyLibsOnly = swiftStdlibConcurrencyLibsOnly; } @@ -108,9 +104,6 @@ private ImmutableList getSwiftStdlibCommand() { "--sign", CodeSignStep.getIdentityArg(codeSignIdentitySupplier.get().get())); } - swiftStdlibCommand.add("--strip-bitcode-tool"); - swiftStdlibCommand.addAll(bitcodeStripToolPath); - return swiftStdlibCommand.build(); } diff --git a/src/com/facebook/buck/apple/toolchain/AppleCxxPlatform.java b/src/com/facebook/buck/apple/toolchain/AppleCxxPlatform.java index 344799b92fe..cb75943aaf3 100644 --- a/src/com/facebook/buck/apple/toolchain/AppleCxxPlatform.java +++ b/src/com/facebook/buck/apple/toolchain/AppleCxxPlatform.java @@ -73,7 +73,6 @@ public abstract class AppleCxxPlatform implements FlavorConvertible { // Xcode build identifier, e.g. 7C1002 public abstract Optional getXcodeBuildVersion(); - public abstract Optional getBitcodeStripTool(); @Override public Flavor getFlavor() { diff --git a/src/com/facebook/buck/apple/toolchain/impl/AppleCxxPlatforms.java b/src/com/facebook/buck/apple/toolchain/impl/AppleCxxPlatforms.java index a7247e74f19..b2044868fd0 100644 --- a/src/com/facebook/buck/apple/toolchain/impl/AppleCxxPlatforms.java +++ b/src/com/facebook/buck/apple/toolchain/impl/AppleCxxPlatforms.java @@ -322,10 +322,6 @@ public static AppleCxxPlatform buildWithXcodeToolFinder( getOptionalXcodeTool( filesystem, toolSearchPaths, xcodeToolFinder, appleConfig, "dwarfdump", version); - Optional bitcodeStrip = - getOptionalXcodeTool( - filesystem, toolSearchPaths, xcodeToolFinder, appleConfig, "bitcode_strip", version); - // We are seeing a stack overflow in dsymutil during (fat) LTO // builds. Upstream dsymutil was patched to avoid recursion in the // offending path in https://reviews.llvm.org/D48899, and @@ -577,8 +573,7 @@ public static AppleCxxPlatform buildWithXcodeToolFinder( .setCodesignAllocate( getOptionalTool( "codesign_allocate", toolSearchPaths, xcodeToolFinder, version, filesystem)) - .setCodesignProvider(appleConfig.getCodesignProvider()) - .setBitcodeStripTool(bitcodeStrip); + .setCodesignProvider(appleConfig.getCodesignProvider()); return platformBuilder.build(); } @@ -663,10 +658,6 @@ private static Optional getSwiftPlatform( .add("--strip-bitcode") .add("--platform") .add(platformName); - for (Path toolchainPath : sdkPaths.getToolchainPaths()) { - swiftStdlibToolParamsBuilder.add("--toolchain").add(toolchainPath.toString()); - } - Optional swiftc = getOptionalToolWithParams( "swiftc", toolSearchPaths, xcodeToolFinder, version, ImmutableList.of(), filesystem);