Skip to content

Cherry-pick dSYM/debug symbols overhaul from upstream (batch 2)#2913

Draft
luispadron wants to merge 13 commits intomainfrom
luis/upstream-batch-2-dsym-overhaul
Draft

Cherry-pick dSYM/debug symbols overhaul from upstream (batch 2)#2913
luispadron wants to merge 13 commits intomainfrom
luis/upstream-batch-2-dsym-overhaul

Conversation

@luispadron
Copy link
Copy Markdown
Contributor

@luispadron luispadron commented Apr 2, 2026

Cherry-picks from the upstream branch - batch 2 of a larger sync effort (see #2861 for full context).

Stacked on #2912 (batch 1 - linking refactor).

Commits

  • Wire up build settings for crosstool dSYM bundles (upstream: f1ed76b)
  • Remove bin_root_path reference from dynamic framework provider partial and dead AppleDynamicFrameworkInfo fields (upstream: 28d227a)
  • Unify disassociated references to unstripped binary outputs via fragment_support and outputs (upstream: c19c91b)
  • Sync debug_symbols.bzl with upstream (full file sync - cherry-pick was not feasible)
  • Handle bundle outputs from the crosstool via the debug symbols partial (upstream: 7a0ef14)
  • Update outputs.dsyms() for new dsymutil bundle outputs, add macOS tests (upstream: b27541a)
  • Round out testing support for dsymutil generated dSYMs across all platforms (upstream: PiperOrigin-RevId 752690208)

@luispadron luispadron force-pushed the luis/upstream-batch-2-dsym-overhaul branch 2 times, most recently from a74af8a to 358a9fd Compare April 2, 2026 05:57
Base automatically changed from luis/upstream-batch-1-linking-refactor to main April 2, 2026 15:51
nglevin and others added 13 commits April 2, 2026 19:19
…rtial along with dead code that was present from use of the vestigial AppleDynamicFrameworkInfo fields.

Cherry-pick: 28d227a
…puts and the anticipated base name via use of "fragment_support" and "outputs", shared through compilation_support and linking_support. This will be used to reference the unstripped binary that is found in the generated dSYM bundles.

Cherry-pick: c19c91b
…mbols partial.

Tests for other platforms and targets besides ios_application will arrive in a following commit.

NOTE: includes manual addition of `dsym_variant_flag` since its not public in the upstream code

Cherry-pick: 7a0ef14
…e outputs.

Add tests for macos_application and macos_command_line_application.
Use build_setting_labels flags to reference dsym_variant_flag in test rules when possible.

Cherry-pick: b27541a
…ple starlark tests.

PiperOrigin-RevId: 752690208
The cherry-pick of upstream commit brought in `bazel_features.cc.objc_fragment_has_builtin_objc_strip_action`
which doesn't exist in the open-source build. Use `hasattr(ctx.fragments.objc, "builtin_objc_strip_action")`
instead, matching the pattern used elsewhere in the codebase.

Also fix `//apple/internal/toolchains:apple_toolchains` to `//apple/internal:apple_toolchains` to match
the open-source package layout.
The removal of AppleDynamicFrameworkInfo fields (framework_dirs,
framework_files, binary) requires updating the generated docs.
The linking_support struct field was renamed from dsym_binaries to
dsym_outputs but not all call sites in the platform rule files were
updated, causing analysis failures.
The synced debug_symbols_partial from upstream dropped executable_name,
but the open-source build uses it to allow the dSYM filename to differ
from bundle_name (e.g. for test bundles). Re-add as an optional param
defaulting to None, falling back to bundle_name when unset.
…artial call

Missed rename in _ios_app_clip_impl's apple_symbols_file_partial call.
…spaces

The synced debug_symbols.bzl from upstream didn't quote OUTPUT_DIR
references in shell commands, causing failures for targets with spaces
in their bundle names (e.g. ext_with_space). The open-source repo has
test targets with spaces that upstream doesn't.
@luispadron luispadron force-pushed the luis/upstream-batch-2-dsym-overhaul branch from 0acea60 to 1302e8a Compare April 2, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants