From 74c141819f926b9cedbed3f61a1d75b78ebefb63 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Thu, 11 Dec 2025 10:47:25 -0800 Subject: [PATCH 1/3] [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 cfba4319f444..fed8be31d9e7 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/3] 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 fed8be31d9e7..c08256d42ebb 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/3] 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 e8d7d8b42043..4d3dd6a75a2c 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 d888665e0876..0bd722b39b1c 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": "