Skip to content

Conversation

@sstrickl
Copy link
Contributor

@sstrickl sstrickl commented Sep 3, 2025

Instead of generating assembly code that is then compiled to a Mach-O dynamic library, use the new app-aot-macho-dylib output option for gen_snapshot to generate the Mach-O dynamic library without the assembly step.

This is a reland of #171626, with the necessary changes to avoid the issue found in #174393 where DWARF information was being retained in the final snapshot. The initial PR state are the original commits landed in the previous PR, with a followup commit containing the fix for that issue: the DWARF information is moved into an associated relocatable object, so the information is still accessible by dsymutil before the snapshot is stripped.

Related issues:

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

@github-actions github-actions bot added tool Affects the "flutter" command-line tool. See also t: labels. team-ios Owned by iOS platform team labels Sep 3, 2025
@sstrickl sstrickl force-pushed the use-macho-dylib branch 2 times, most recently from 40db7fe to b6b852d Compare November 20, 2025 15:24
@sstrickl sstrickl marked this pull request as ready for review November 20, 2025 15:50
@sstrickl sstrickl requested a review from a team as a code owner November 20, 2025 15:50
@sstrickl sstrickl assigned sstrickl and bkonyi and unassigned sstrickl Nov 20, 2025
@sstrickl
Copy link
Contributor Author

As mentioned in the PR description, the only commit that differs from the original PR that @bkonyi reviewed is the last one that adds the --macho-object= command line argument to specify where the relocatable object goes. All the other work is Dart-side.

@jmagman jmagman added the platform-ios iOS applications specifically label Dec 1, 2025
Copy link
Member

@jmagman jmagman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for re-landing with the fix.

@jmagman jmagman added the autosubmit Merge PR when tree becomes green via auto submit App label Dec 1, 2025
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Dec 1, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Dec 1, 2025

autosubmit label was removed for flutter/flutter/174870, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR.

@sstrickl sstrickl added this pull request to the merge queue Dec 2, 2025
Merged via the queue into flutter:master with commit 4b6e0bd Dec 2, 2025
143 checks passed
@sstrickl sstrickl deleted the use-macho-dylib branch December 2, 2025 11:59
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 2, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Dec 2, 2025
flutter/flutter@05d6005...5545bb3

2025-12-02 [email protected] Roll Skia from 4371ed0ce49e to 45337c4e919d (1 revision) (flutter/flutter#179342)
2025-12-02 [email protected] Roll Fuchsia Linux SDK from sTk6OB7a4yudbfdZg... to l0DvmZrMHlF12frrX... (flutter/flutter#179338)
2025-12-02 [email protected] Unfocus search anchor bar when the view is closed (flutter/flutter#178910)
2025-12-02 [email protected] Directly generate a Mach-O dynamic library using gen_snapshot. [reland] (flutter/flutter#174870)
2025-12-02 [email protected] Roll Skia from 1fc59bf5cbb1 to 4371ed0ce49e (3 revisions) (flutter/flutter#179326)
2025-12-02 [email protected] [win32] Replace threadpool timer with custom background thread timer (flutter/flutter#179249)
2025-12-02 [email protected] Roll Skia from 61257a1036fb to 1fc59bf5cbb1 (1 revision) (flutter/flutter#179321)
2025-12-02 [email protected] Roll Skia from ef52cf952211 to 61257a1036fb (2 revisions) (flutter/flutter#179319)
2025-12-02 [email protected] Roll Skia from 8887653a773e to ef52cf952211 (1 revision) (flutter/flutter#179316)
2025-12-02 [email protected] Roll pub packages (flutter/flutter#179313)
2025-12-02 [email protected] Update customer tests (flutter/flutter#179309)
2025-12-01 [email protected] Marks Linux_pixel_7pro new_gallery__transition_perf to be unflaky (flutter/flutter#176339)
2025-12-01 [email protected] Fix typo (flutter/flutter#179200)
2025-12-01 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 5.0.1 to 6.0.0 in the all-github-actions group (flutter/flutter#179308)
2025-12-01 [email protected] Roll Dart SDK from c54108eeb2c1 to eb743a1d4ade (1 revision) (flutter/flutter#179304)
2025-12-01 [email protected] Roll pub packages (flutter/flutter#179280)
2025-12-01 [email protected] Roll Skia from 68cc3257e734 to 8887653a773e (4 revisions) (flutter/flutter#179302)
2025-12-01 [email protected] Support round caps for the fast arc stroke generator (flutter/flutter#178269)
2025-12-01 [email protected] Fix for PR #174374 - Fix - TalkBack does not announce list information (flutter/flutter#177622)
2025-12-01 [email protected] Small cleanup in `‎AccessibilityBridge.java‎` (flutter/flutter#179226)
2025-12-01 [email protected] Roll Skia from 925c311f4b37 to 68cc3257e734 (44 revisions) (flutter/flutter#179294)
2025-12-01 [email protected] [ Widget Preview ] Ignore changes under `ios/.symlinks` (flutter/flutter#179290)
2025-12-01 [email protected] Delete unecessary lockfile (flutter/flutter#179052)
2025-12-01 [email protected] Resolving and piping the view ID  through the WidgetController and the TestPointer so that clicks wind up on the right view (flutter/flutter#178941)
2025-12-01 [email protected] Fix link specified as plain text `FlutterApplication.java‎` (flutter/flutter#178573)
2025-12-01 [email protected] Update some comments to reflect theme normalization (flutter/flutter#179013)
2025-12-01 [email protected] Roll Dart SDK from 51fe8cd01fbe to c54108eeb2c1 (1 revision) (flutter/flutter#179267)
2025-12-01 [email protected] Explicitly use FreeType font scanner with Fuchsia (flutter/flutter#179055)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
mboetger pushed a commit to mboetger/flutter that referenced this pull request Dec 2, 2025
…d] (flutter#174870)

Instead of generating assembly code that is then compiled to a Mach-O
dynamic library, use the new app-aot-macho-dylib output option for
gen_snapshot to generate the Mach-O dynamic library without the assembly
step.

This is a reland of flutter#171626, with
the necessary changes to avoid the issue found in
flutter#174393 where DWARF information
was being retained in the final snapshot. The initial PR state are the
original commits landed in the previous PR, with a followup commit
containing the fix for that issue: the DWARF information is moved into
an associated relocatable object, so the information is still accessible
by dsymutil before the snapshot is stripped.

Related issues:

* dart-lang/sdk#43299
* dart-lang/sdk#60307

## Pre-launch Checklist

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [X] All existing and new tests are passing.
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
…d] (flutter#174870)

Instead of generating assembly code that is then compiled to a Mach-O
dynamic library, use the new app-aot-macho-dylib output option for
gen_snapshot to generate the Mach-O dynamic library without the assembly
step.

This is a reland of flutter#171626, with
the necessary changes to avoid the issue found in
flutter#174393 where DWARF information
was being retained in the final snapshot. The initial PR state are the
original commits landed in the previous PR, with a followup commit
containing the fix for that issue: the DWARF information is moved into
an associated relocatable object, so the information is still accessible
by dsymutil before the snapshot is stripped.

Related issues:

* dart-lang/sdk#43299
* dart-lang/sdk#60307

## Pre-launch Checklist

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [X] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [X] All existing and new tests are passing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform-ios iOS applications specifically team-ios Owned by iOS platform team tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants