From 74c141819f926b9cedbed3f61a1d75b78ebefb63 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Thu, 11 Dec 2025 10:47:25 -0800 Subject: [PATCH 1/4] [build-script] Don't use the just-built dsymutil by default Doing so may have made sense back then, but at this point we should default to the one in the toolchain. When building with asserts, the just-built dsymutil will run the DWARF verifier which is slow and not really desirable in this context. --- utils/build-script-impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index cfba4319f444d..fed8be31d9e7a 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -107,7 +107,7 @@ KNOWN_SETTINGS=( darwin-deployment-version-watchos "6.0" "minimum deployment target version for watchOS" darwin-deployment-version-xros "1.0" "minimum deployment target version for xrOS" darwin-install-extract-symbols "" "whether to extract symbols with dsymutil during installations" - darwin-install-extract-symbols-use-just-built-dsymutil "1" "whether we should extract symbols using the just built dsymutil" + darwin-install-extract-symbols-use-just-built-dsymutil "" "whether we should extract symbols using the just built dsymutil" darwin-symroot-path-filters "" "space-separated list of path patterns to consider for symbol generation" darwin-overlay-target "" "single overlay target to build, dependencies are computed later" darwin-sdk-deployment-targets "xctest-ios-8.0" "semicolon-separated list of triples like 'fookit-ios-9.0;barkit-watchos-9.0'" From 3d12031ca64536f47152c8b293aa789757c713fc Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Thu, 11 Dec 2025 11:09:39 -0800 Subject: [PATCH 2/4] Always pass --verify-dwarf none --- utils/build-script-impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index fed8be31d9e7a..c08256d42ebb1 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -3093,7 +3093,7 @@ for host in "${ALL_HOSTS[@]}"; do printJSONStartTimestamp dsymutil (cd "${host_symroot}" && find ./"${CURRENT_PREFIX}" -perm -0111 -type f -not -name "*.a" -not -name "*.py" -print | \ - xargs -t -n 1 -P ${DSYMUTIL_JOBS} ${dsymutil_path} ${EXTRA_DSYMUTIL_ARGS[@]}) + xargs -t -n 1 -P ${DSYMUTIL_JOBS} ${dsymutil_path} --verify-dwarf none ${EXTRA_DSYMUTIL_ARGS[@]}) printJSONEndTimestamp dsymutil # Strip executables, shared libraries and static libraries in From 88bbbec6311224062763158b88bd2859c387eeb0 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Mon, 15 Dec 2025 13:36:42 -0800 Subject: [PATCH 3/4] Update tests --- validation-test/BuildSystem/extra_dsymutil_args.test | 8 ++++---- .../BuildSystem/extra_dsymutil_args_empty.test | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/validation-test/BuildSystem/extra_dsymutil_args.test b/validation-test/BuildSystem/extra_dsymutil_args.test index e8d7d8b420430..4d3dd6a75a2cb 100644 --- a/validation-test/BuildSystem/extra_dsymutil_args.test +++ b/validation-test/BuildSystem/extra_dsymutil_args.test @@ -4,11 +4,11 @@ # RUN: mkdir -p %t # RUN: mkdir -p %t/destdir # RUN: mkdir -p %t/symroot/macosx-%target-cpu -# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --enable-extract-symbol-dry-run-test=1 --host-target=macosx-%target-cpu --darwin-install-extract-symbols --extra-dsymutil-args="--verify-dwarf=none --verbose" --cmake %cmake --install-symroot=%t/symroot --install-destdir=%t/destdir --toolchain-prefix= 2>&1 | %FileCheck %s -# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --enable-extract-symbol-dry-run-test=1 --host-target=macosx-%target-cpu --darwin-install-extract-symbols --extra-dsymutil-args=--verify-dwarf=none,--verbose --cmake %cmake --install-symroot=%t/symroot --install-destdir=%t/destdir --toolchain-prefix= 2>&1 | %FileCheck %s -# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --enable-extract-symbol-dry-run-test=1 --host-target=macosx-%target-cpu --darwin-install-extract-symbols --extra-dsymutil-args="--verify-dwarf=none" --extra-dsymutil-args=--verbose --cmake %cmake --install-symroot=%t/symroot --install-destdir=%t/destdir --toolchain-prefix= 2>&1 | %FileCheck %s +# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --enable-extract-symbol-dry-run-test=1 --host-target=macosx-%target-cpu --darwin-install-extract-symbols --extra-dsymutil-args="--verify-dwarf=auto --verbose" --cmake %cmake --install-symroot=%t/symroot --install-destdir=%t/destdir --toolchain-prefix= 2>&1 | %FileCheck %s +# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --enable-extract-symbol-dry-run-test=1 --host-target=macosx-%target-cpu --darwin-install-extract-symbols --extra-dsymutil-args=--verify-dwarf=auto,--verbose --cmake %cmake --install-symroot=%t/symroot --install-destdir=%t/destdir --toolchain-prefix= 2>&1 | %FileCheck %s +# RUN: SKIP_XCODE_VERSION_CHECK=1 SWIFT_BUILD_ROOT=%t %swift_src_root/utils/build-script --dry-run --enable-extract-symbol-dry-run-test=1 --host-target=macosx-%target-cpu --darwin-install-extract-symbols --extra-dsymutil-args="--verify-dwarf=auto" --extra-dsymutil-args=--verbose --cmake %cmake --install-symroot=%t/symroot --install-destdir=%t/destdir --toolchain-prefix= 2>&1 | %FileCheck %s # CHECK: --- Extracting symbols --- # CHECK: { "command": "dsymutil", "start": " -# CHECK: xargs -t -n 1 -P 1 {{.*}}dsymutil --verify-dwarf=none --verbose +# CHECK: xargs -t -n 1 -P 1 {{.*}}dsymutil --verify-dwarf=none --verify-dwarf=auto --verbose # CHECK: { "command": "dsymutil", "end": " diff --git a/validation-test/BuildSystem/extra_dsymutil_args_empty.test b/validation-test/BuildSystem/extra_dsymutil_args_empty.test index d888665e08769..0bd722b39b1c9 100644 --- a/validation-test/BuildSystem/extra_dsymutil_args_empty.test +++ b/validation-test/BuildSystem/extra_dsymutil_args_empty.test @@ -11,5 +11,5 @@ # CHECK: --- Extracting symbols --- # CHECK: { "command": "dsymutil", "start": " -# CHECK: xargs -t -n 1 -P 1 {{.*}}dsymutil{{$}} +# CHECK: xargs -t -n 1 -P 1 {{.*}}dsymutil --verify-dwarf=none{{$}} # CHECK: { "command": "dsymutil", "end": " From 9143271dfdc92053a7b9d95000d9fd60e42413c3 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Tue, 16 Dec 2025 10:23:08 -0800 Subject: [PATCH 4/4] Add missing = --- utils/build-script-impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/build-script-impl b/utils/build-script-impl index c08256d42ebb1..0c77cd4d2f463 100755 --- a/utils/build-script-impl +++ b/utils/build-script-impl @@ -3093,7 +3093,7 @@ for host in "${ALL_HOSTS[@]}"; do printJSONStartTimestamp dsymutil (cd "${host_symroot}" && find ./"${CURRENT_PREFIX}" -perm -0111 -type f -not -name "*.a" -not -name "*.py" -print | \ - xargs -t -n 1 -P ${DSYMUTIL_JOBS} ${dsymutil_path} --verify-dwarf none ${EXTRA_DSYMUTIL_ARGS[@]}) + xargs -t -n 1 -P ${DSYMUTIL_JOBS} ${dsymutil_path} --verify-dwarf=none ${EXTRA_DSYMUTIL_ARGS[@]}) printJSONEndTimestamp dsymutil # Strip executables, shared libraries and static libraries in