Skip to content

Roll clang to 07d67299a15ce03b053736e2d31a668ee0576987 - #192607

Merged
auto-submit[bot] merged 7 commits into
flutter:masterfrom
cbracken:roll-clang-toolchain
Sep 12, 2026
Merged

auto-submit[bot] merged 7 commits into
flutter:masterfrom
cbracken:roll-clang-toolchain

Conversation

@cbracken

@cbracken cbracken commented Sep 11, 2026 •

Copy link
Copy Markdown
Member

This rolls clang to pick up llvm/llvm-project@b8007a8

Xcode 27 Release Candidate 1 includes a new target architecture in the MacOS SDK .tbd stub files: arm64e.x1. The linker in our toolchain errors out, complaining about the unknown architecture and claiming the .tbd is malformed. The fix was landed in the above clang commit. This rolls the updated Fuchsia clang toolchain with the upstream fix.

ld64.lld: error: could not load TAPI file at ../../flutter/prebuilts/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.tbd: malformed file
./engine/src/flutter/prebuilts/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.tbd:4:20: error: unknown architecture
                   arm64e.x1-macos, arm64e.x1-maccatalyst ]
                   ^~~~~~~~~~~~~~~

It's been above six months since the last roll. Clang now catches two new unused identifier warnings (which we promote to errors) in Skia:

  • SkSL::Program::ElementsCollection::iterator::fOwnedEnd in src/sksl/ir/SkSLProgram.h:113 identified due to -Wunused-private-field. Assigned in the iterator's ctor init list at line 110 but never read.
  • skia::textlayout::ParagraphImpl::getEllipsis() contains an unused local ellipsis16 at modules/skparagraph/src/ParagraphImpl.cpp:1090 identified due to -Wunused-variable; the else branch calls fParagraphStyle.getEllipsisUtf16() again instead of using it.

I've added Skia-specific suppression for those two, and a TODO. I'll send patches upstream to clean these up. Once they land and Skia rolls back in, we'll remove the suppression.

This also triggers a warning about g_test_lock acquired in MockGLES::Init. This is test-only code either way, but the mutex is always released in the dtor so the code as written is safe. Added an annotation to silence that warning.

Issue: #192609

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 11, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@github-actions github-actions Bot added engine flutter/engine related. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Sep 11, 2026
@cbracken
cbracken force-pushed the roll-clang-toolchain branch 2 times, most recently from 780feba to acb617b Compare September 11, 2026 05:51
@cbracken cbracken changed the title Roll clang to 9d4a7d05d2ef4774f08a0f95faef510c0be469a9 Roll clang to 07d67299a15ce03b053736e2d31a668ee0576987 Sep 11, 2026
@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@cbracken
cbracken force-pushed the roll-clang-toolchain branch from 4a55140 to 7abc045 Compare September 11, 2026 07:54
@github-actions github-actions Bot added the platform-fuchsia Fuchsia code specifically label Sep 11, 2026
knopp
knopp previously approved these changes Sep 11, 2026
@cbracken
cbracken force-pushed the roll-clang-toolchain branch from 9658222 to dc7b295 Compare September 11, 2026 11:39
@github-actions github-actions Bot added the f: focus Focus traversal, gaining or losing focus label Sep 11, 2026
@cbracken
cbracken requested review from a team as code owners September 11, 2026 14:08
@github-actions github-actions Bot added platform-android Android applications specifically platform-ios iOS applications specifically platform-macos Building on or for macOS specifically platform-windows Building on or for Windows specifically platform-linux Building on or for Linux specifically a: desktop Running on desktop labels Sep 11, 2026
jtmcdole
jtmcdole previously approved these changes Sep 11, 2026
@jtmcdole jtmcdole added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 11, 2026
@cbracken
cbracken dismissed stale reviews from jtmcdole and jmagman via 0fd2c51 September 11, 2026 17:26
@cbracken
cbracken force-pushed the roll-clang-toolchain branch from e818808 to 0fd2c51 Compare September 11, 2026 17:26
@github-actions github-actions Bot added the a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) label Sep 11, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 11, 2026
@auto-submit

auto-submit Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/192607, because - The status or check suite Google testing has failed. Please fix the issues identified (or deflake) before re-applying this label.

@zanderso

Copy link
Copy Markdown
Member

The Clang version number (currently 23) appears in paths in RBE config files under engine/src/flutter/build/rbe. It looks like they will need to be updated to 24.

@cbracken

cbracken commented Sep 12, 2026 •

Copy link
Copy Markdown
Member Author

The Clang version number (currently 23) appears in paths in RBE config files under engine/src/flutter/build/rbe. It looks like they will need to be updated to 24.

Thanks @zanderso; updated, pushed a new reclient_cfgs cipd package, and seeing how this round looks.

This rolls clang to pick up
llvm/llvm-project@b8007a8

Xcode 27 Release Candidate 1 includes a new target architecture in the
MacOS SDK .tbd stub files: `arm64e.x1`. The linker in our toolchain
errors out, complaining about the unknown architecture and claiming the
.tbd is malformed. The fix was landed in the above clang commit. This
rolls the updated Fuchsia clang toolchain with the upstream fix.

```
ld64.lld: error: could not load TAPI file at ../../flutter/prebuilts/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.tbd: malformed file
./engine/src/flutter/prebuilts/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.tbd:4:20: error: unknown architecture
                   arm64e.x1-macos, arm64e.x1-maccatalyst ]
                   ^~~~~~~~~~~~~~~
```

It's been above six months since the last roll. Clang now catches two
new unused identifier warnings (which we promote to errors) in Skia:
* `SkSL::Program::ElementsCollection::iterator::fOwnedEnd` in
  `src/sksl/ir/SkSLProgram.h:113` identified due to
  `-Wunused-private-field`. Assigned in the iterator's ctor init list at
  line 110 but never read.
* `skia::textlayout::ParagraphImpl::getEllipsis()` contains an unused
  local `ellipsis16` at `modules/skparagraph/src/ParagraphImpl.cpp:1090`
  identified due to `-Wunused-variable`; the `else` branch calls
  `fParagraphStyle.getEllipsisUtf16()` again instead of using it.

I've added Skia-specific suppression for those two, and a TODO. I'll
send patches upstream to clean these up. Once they land and Skia rolls
back in, we'll remove the suppression.

Also works around an unused variable warnings in Fuchsia's binding_set.h
until it's fixed upstream in Fuchsia.

This also triggers a warning about `g_test_lock` acquired in
`MockGLES::Init`. This is test-only code either way, but the mutex is
always released in the dtor so the code as written is safe. Added an
annotation to silence that warning.

Issue: flutter#192609
* Fix switch naming to follow our convention of kFooBar, which
  clang_tidy is now upset about.
* Fix missing <cmath> import for isinf and isnan.
Unlike other platforms, we didn't pass `-nostdlib++` on Linux, so the
driver added `-lc++` and we linked the toolchain's `libc++.a` alongside
our own `//flutter/third_party/libcxx` and `//flutter/third_party/libcxxabi`.
As of clang 24, that .a lib also bundles libc++abi, so linking is
failing on duplicate exception symbols (with our own libcxx):

```
ld.lld: error: duplicate symbol: __cxa_increment_exception_refcount
>>> defined at cxa_noexception.cpp:26
>>>            obj/flutter/third_party/libcxxabi/src/libcxxabi.cxa_noexception.o
>>> defined at cxa_exception.cpp:674
>>>            cxa_exception.cpp.o in archive buildtools/linux-x64/clang/lib/x86_64-unknown-linux-gnu/libc++.a
```

We now pass `-nostdlib++` on Linux as well. Since the unwinder came in
via libc++, we now link libunwid explicitly.
@cbracken
cbracken force-pushed the roll-clang-toolchain branch from bf03cfa to 6d572bc Compare September 12, 2026 00:24

@jtmcdole jtmcdole left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

clang roll train 🚋

@jtmcdole jtmcdole added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 12, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Sep 12, 2026
Merged via the queue into flutter:master with commit 2553f89 Sep 12, 2026
23 of 24 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 12, 2026
@cbracken
cbracken deleted the roll-clang-toolchain branch September 12, 2026 11:17
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Sep 12, 2026
Roll Flutter from 63b9518f16bc to 2553f89be1ef (62 revisions)

flutter/flutter@63b9518...2553f89

2026-09-12 [email protected] Roll clang to 07d67299a15ce03b053736e2d31a668ee0576987 (flutter/flutter#192607)
2026-09-12 [email protected] Roll Dart SDK from b24b352c29db to 7863887acbfb (3 revisions) (flutter/flutter#192665)
2026-09-12 [email protected] fix(tree): et format --all (flutter/flutter#192669)
2026-09-12 [email protected] Support activity-alias in Android launcher activity detection (flutter/flutter#187251)
2026-09-12 [email protected] fix: regenerate gradle lockfiles for external_textures integration test (flutter/flutter#192657)
2026-09-12 [email protected] Roll Skia from 51aa02b2c195 to e5e96533b732 (4 revisions) (flutter/flutter#192646)
2026-09-12 [email protected] [WebParagraph] Fix text pixelation, glyph clipping, and snapping offsets to avoid subpixel raster caching (flutter/flutter#191736)
2026-09-12 [email protected] fix(tests): Add ruby dep to Mac windowing_test (flutter/flutter#192656)
2026-09-12 [email protected] Remove some `unawaited_futures` outdated ignores (flutter/flutter#192026)
2026-09-11 [email protected] Bump Dart to 3.13, reformat, re-enable formatting check (flutter/flutter#192649)
2026-09-11 [email protected] [android] Isolate API-34 high contrast listener in AccessibilityBridge behind Api34Impl (flutter/flutter#192502)
2026-09-11 [email protected] Update style guide for Dart 3.13 (flutter/flutter#192639)
2026-09-11 [email protected] ci(bringups): remove bringup from these tests (flutter/flutter#192637)
2026-09-11 [email protected] Unmark new_gallery_windows_impeller__transition_perf as bringup (flutter/flutter#192633)
2026-09-11 [email protected] Unmark new_gallery_windows_skia__transition_perf as bringup (flutter/flutter#192635)
2026-09-11 [email protected] Roll Skia from f446aec4ce9e to 51aa02b2c195 (2 revisions) (flutter/flutter#192631)
2026-09-11 [email protected] fix(ci): mac verify binaries still racing (flutter/flutter#192634)
2026-09-11 [email protected] Roll Packages from 8a35b16 to 9caa77c (8 revisions) (flutter/flutter#192630)
2026-09-11 [email protected] Roll Dart SDK from a76fee2722e0 to b24b352c29db (2 revisions) (flutter/flutter#192627)
2026-09-11 [email protected] [tool] Migrate PackagesCommand and Pub to modular dependency injection (flutter/flutter#192460)
2026-09-11 [email protected] [tool] Migrate Darwin framework commands to modular dependency injection (flutter/flutter#192252)
2026-09-11 [email protected] [tool] Migrate Upgrade, Downgrade, and UpdatePackages commands to modular dependency injection (flutter/flutter#190787)
2026-09-11 [email protected] Roll Skia from b3fa80a0e168 to f446aec4ce9e (55 revisions) (flutter/flutter#192620)
2026-09-11 [email protected] Roll Dart SDK from d20d59cfa664 to a76fee2722e0 (2 revisions) (flutter/flutter#192616)
2026-09-11 [email protected] remove deeplink integration tests from bringup (flutter/flutter#192459)
2026-09-11 [email protected] Revert: [devicelab] Clean up Chrome profile directories and trap abort signals in web benchmarks (flutter/flutter#192615)
2026-09-11 [email protected] Roll Fuchsia Linux SDK from C0j8F-_Iy-OQZ6YyI... to m69nfK-wnHaMTe8P9... (flutter/flutter#192608)
2026-09-11 [email protected] Fix Wasm build cache mismatch in ResidentWebRunner and browser 404 fallbacks (flutter/flutter#190786)
2026-09-11 [email protected] Roll Dart SDK from 3ce3116bc9ec to d20d59cfa664 (1 revision) (flutter/flutter#192588)
2026-09-11 [email protected] [Linux] Keep the frame at the top of a resizing subsurface (flutter/flutter#192408)
2026-09-10 [email protected] [devicelab] Clean up Chrome profile directories and trap abort signals in web benchmarks (flutter/flutter#192584)
2026-09-10 [email protected] [web] Keep ImageSource alive until Picture disposal (flutter/flutter#192516)
2026-09-10 [email protected] Remove the accessibility evaluations feature flag (flutter/flutter#192266)
2026-09-10 [email protected] Promote Windows gradient benchmark tests to non-bringup (flutter/flutter#192581)
2026-09-10 [email protected] Remove commented out export in `text_input.dart` since the dart compiler has the correct behavior now (flutter/flutter#191539)
2026-09-10 [email protected] [flutter_tools] Do not mistake server-initiated requests for responses to client requests in AnalysisServer (flutter/flutter#192546)
2026-09-10 [email protected] Roll Packages from 36e088a to 8a35b16 (12 revisions) (flutter/flutter#192550)
2026-09-10 [email protected] Roll pub packages (flutter/flutter#192517)
2026-09-10 [email protected] feat(web): support --web-content-hash for entrypoint files (flutter/flutter#190153)
2026-09-10 [email protected] [web] Stop iOS auto-zoom by sizing semantic inputs at 16px (flutter/flutter#192328)
2026-09-10 [email protected] Roll Dart SDK from 0d55b7a6a9ee to 3ce3116bc9ec (2 revisions) (flutter/flutter#192534)
2026-09-10 [email protected] Update more enum instances comparison to use equality == since dart has the correct behavior now (flutter/flutter#191788)
2026-09-10 [email protected] Fix specify_nonobvious_local_variable_types lints in luci_resultdb_test.dart (flutter/flutter#192543)
2026-09-10 [email protected] Roll ICU from 8cc91d9b6ab9 to 6ebb40c59477 (1 revision) (flutter/flutter#192527)
2026-09-10 [email protected] [Linux] Make the framebuffer depth/stencil buffer optional (flutter/flutter#192156)
2026-09-10 [email protected] [Linux] Cancel input when events stop being delivered (flutter/flutter#192277)
...
holzgeist pushed a commit to holzgeist/flutter that referenced this pull request Sep 29, 2026
This rolls clang to pick up
llvm/llvm-project@b8007a8

Xcode 27 Release Candidate 1 includes a new target architecture in the
MacOS SDK .tbd stub files: `arm64e.x1`. The linker in our toolchain
errors out, complaining about the unknown architecture and claiming the
.tbd is malformed. The fix was landed in the above clang commit. This
rolls the updated Fuchsia clang toolchain with the upstream fix.

```
ld64.lld: error: could not load TAPI file at ../../flutter/prebuilts/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.tbd: malformed file
./engine/src/flutter/prebuilts/SDKs/MacOSX27.0.sdk/usr/lib/libSystem.tbd:4:20: error: unknown architecture
                   arm64e.x1-macos, arm64e.x1-maccatalyst ]
                   ^~~~~~~~~~~~~~~
```

It's been above six months since the last roll. Clang now catches two
new unused identifier warnings (which we promote to errors) in Skia:
* `SkSL::Program::ElementsCollection::iterator::fOwnedEnd` in
`src/sksl/ir/SkSLProgram.h:113` identified due to
`-Wunused-private-field`. Assigned in the iterator's ctor init list at
line 110 but never read.
* `skia::textlayout::ParagraphImpl::getEllipsis()` contains an unused
local `ellipsis16` at `modules/skparagraph/src/ParagraphImpl.cpp:1090`
identified due to `-Wunused-variable`; the `else` branch calls
`fParagraphStyle.getEllipsisUtf16()` again instead of using it.

I've added Skia-specific suppression for those two, and a TODO. I'll
send patches upstream to clean these up. Once they land and Skia rolls
back in, we'll remove the suppression.

This also triggers a warning about `g_test_lock` acquired in
`MockGLES::Init`. This is test-only code either way, but the mutex is
always released in the dtor so the code as written is safe. Added an
annotation to silence that warning.

Issue: flutter#192609

<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [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 in-code documentation (doc comments with
`///`).
- [X] If this PR introduces a new feature or capability, I created and
linked a website documentation issue or PR in [flutter/website] (or
verified none is needed).
- [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.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

If this change needs to override an active code freeze, provide a
comment explaining why. The code freeze workflow can be overridden by
code reviewers. See pinned issues for any active code freezes with
guidance.

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[flutter/website]: https://github.com/flutter/website
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
holzgeist added a commit to holzgeist/flutter that referenced this pull request Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: accessibility Accessibility, e.g. VoiceOver or TalkBack. (aka a11y) a: desktop Running on desktop a: text input Entering text in a text field or keyboard related problems CICD Run CI/CD e: impeller Impeller rendering backend issues and features requests engine flutter/engine related. See also e: labels. f: focus Focus traversal, gaining or losing focus platform-android Android applications specifically platform-fuchsia Fuchsia code specifically platform-ios iOS applications specifically platform-linux Building on or for Linux specifically platform-macos Building on or for macOS specifically platform-windows Building on or for Windows specifically team-android Owned by Android platform team team-ios Owned by iOS platform team team-linux Owned by the Linux platform team team-macos Owned by the macOS platform team team-windows Owned by the Windows platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants