-
Notifications
You must be signed in to change notification settings - Fork 6k
Ensure gclient sync is successful on an M1 Mac host. #27354
Conversation
We don't have access to Android tools of the native architecture. While it is possible to shim x64 Android tools to work on M1, I have opted to disable the Android targets instead. Currently focusing on Mac and iOS targets and don't want to spend too much time on an Android shim when we can probably just publish the right tools to the CIPD bucket and bypass emulation. The GN version has also been updated as it contains the native architecture binaries. The udpate did cause old warnings in GN rules to become errors. I have patched those here and in the buildroot. This does require a buildroot update in flutter/buildroot#480.
dnfield
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm
|
|
||
| # Checkout Android dependencies only on platforms where we build for Android targets. | ||
| 'download_android_deps': 'host_os == "mac" or host_os == "linux"', | ||
| 'download_android_deps': 'host_cpu == "x64" and (host_os == "mac" or host_os == "linux")', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add a Todo/bug to enable this on arm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jmagman I thought there was an umbrella issue for supporting engine builds on M1 hosts. But I am not able to find it. Though I am now not sure if that was only building aarch64 binaries for M1 embedders from x64 hosts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
flutter/flutter#60118 The completed engine work was related to getting the ARM simulator binaries built. @gw280 has the most context. The remaining work is mostly infra and getting the Flutter tooling running natively.
There's another umbrella issue for deploying a Flutter desktop app natively on an M1 without Rosetta: flutter/flutter#60113
|
I should mention that the host toolchain is still x64 as there are no native versions published yet. So far, just focusing on making sure the development workflow is sound. |
|
|
I missed a few updates but they were unfortunately in the buildroot. That has been patched. |
|
On flutter/buildroot#480 on an M1 and this PR I see: Am I doing something wrong here? |
|
I am wiring up the host unit-tests ATM. And this patch only unblocks the sync step and building simple host targets. Toolchain changes and iOS stuff is coming later. |
Oh also I should have been on flutter/buildroot#481 flutter/buildroot@5c61df1 |
We don't have access to Android tools of the native architecture.
While it is possible to shim x64 Android tools to work on M1, I
have opted to disable the Android targets instead. Currently focusing
on Mac and iOS targets and don't want to spend too much time on an
Android shim when we can probably just publish the right tools
to the CIPD bucket and bypass emulation.
The GN version has also been updated as it contains the native
architecture binaries. The udpate did cause old warnings in GN rules
to become errors. I have patched those here and in the buildroot.
This does require a buildroot update in flutter/buildroot#480.