Skip to content

Deprecate support for ia32 #157543

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
2 of 4 tasks
a-siva opened this issue Oct 24, 2024 · 14 comments
Open
2 of 4 tasks

Deprecate support for ia32 #157543

a-siva opened this issue Oct 24, 2024 · 14 comments
Assignees
Labels
P1 High-priority issues at the top of the work list team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team

Comments

@a-siva
Copy link
Contributor

a-siva commented Oct 24, 2024

Dart is considering dropping support for ia32, please see dart-lang/sdk#49969 for more context.

This issue is to ensure Flutter goes through a deprecation process before removing support for ia32.

List of items to consider

  • remove support for jit release mode which is tracked here Remove JIT release x86 mode #151610
  • make an announcement to external developers about the intent to drop support for ia32, this could be done by having Flutter tools issue a warning whenever the x86 emulator is used (Please see Detect x86 Android device or emulator and log warning. #158953)
  • switch Flutter tools to use x86_64 by default (switch to use a different ABI, apparently AS: 31 and above ABI uses x86_64)
  • After one beta cycle of issuing the warning, remove support for ia32 in flutter tools

//cc @bkonyi

@bkonyi bkonyi added P1 High-priority issues at the top of the work list team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team labels Oct 24, 2024
christopherfujino pushed a commit that referenced this issue Dec 10, 2024
… target (#159847)

This pull request is created by [automatic cherry pick
workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate
this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

#157543

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter
developers. See [best
practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md)
for examples

Add deprecation notice for Android x86 support, which will be removed in
next stable release after 3.27.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot
ship an iOS app)? Does it impact development (ex. flutter doctor crashes
when Android Studio is installed), or the shipping production app (the
app crashes on launch)

A deprecation notice will be printed when users build or run an x86
Android application.

### Workaround:
Is there a workaround for this issue?

No, this is simply a deprecation notice.

### Risk:
What is the risk level of this cherry-pick?

  - [X] Low
  - [ ] Medium
  - [ ] High

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [X] Yes
  - [ ] No

### Validation Steps:
What are the steps to validate that this fix works?

Run `flutter build apk --target-platform=android-x86` and observe a
deprecation notice is printed.

Co-authored-by: Ben Konyi <bkonyi@google.com>
@nathfavour
Copy link

Hi, if I may ask, why deprecate x86 tho

@andrewkolos andrewkolos assigned bkonyi and unassigned andrewkolos Feb 4, 2025
@bkonyi
Copy link
Contributor

bkonyi commented Feb 10, 2025

Hi, if I may ask, why deprecate x86 tho

x86 has always been a maintenance burden for the Dart VM and is the only architecture that doesn't support our ahead-of-time (AOT) compilation pipeline (partly due to the limited number of CPU registers which would prevent a lot of code being shared between the implementations for other architectures) that Flutter uses for release quality builds. Given that x86 is becoming less and less common, especially for Android devices, the install base is small enough that it's no longer worth maintaining.

@nathfavour
Copy link

nathfavour commented Feb 10, 2025 via email

@KannRangsey
Copy link

Support for Android x86 targets will be removed in the next stable release after 3.27. See #157543 for details.
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:mapDebugSourceSetPaths'.

Error while evaluating property 'extraGeneratedResDir' of task ':app:mapDebugSourceSetPaths'.
Failed to calculate the value of task ':app:mapDebugSourceSetPaths' property 'extraGeneratedResDir'.
> Querying the mapped value of provider(java.util.Set) before task ':app:processDebugGoogleServices' has completed is not supported

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

BUILD FAILED in 16s
Error: Gradle task assembleDebug failed with exit code 1

@qeepcologne
Copy link

qeepcologne commented Feb 14, 2025

strangely exactly the same message is displayed on 3.29.0

Support for Android x86 targets will be removed in the next stable release after 3.27. See #157543 for
details.

This is very confusing as 3.29 is the next stable release after 3.27.
So is it removed or not (or just forgotten to remove or change the message?)

@bkonyi
Copy link
Contributor

bkonyi commented Feb 14, 2025

The removal was delayed, so that message is no longer correct and should be updated. I'll create a PR that patches this and I'll try and get it cherry picked into the current stable to reduce confusion.

@a-siva can you confirm that we're still on track to remove IA32 support for the next stable?

@auwsom
Copy link

auwsom commented Feb 16, 2025

Can i add that testing in an development VM (libvirt and virt-manager) the emulator is unusably slow (because of the nested virtualization). Hence the usefulness of the androidx86 image VM which Flutter readily recognizes over network. Maybe someone has another suggestion. Is there a VM compatible image of an emulator? (Flutter is the best, btw, even though I prefer python, plyer and others could not get the native stt working)

@Bhautik070

This comment has been minimized.

@matheusbristot
Copy link

The warning is still present in the 3.29.x versions.

I think it will probably be removed in 3.30, maybe.

I’m sharing the snippet that removes the warning:
"Support for Android x86 targets will be removed in the next stable release after 3.27. See #157543 for details."

This is occurring because of the x86 (32-bit) architecture.

flutter build apk --target-platform=android-arm,android-arm64,android-x64 --split-per-abi

@andrew2558
Copy link

Does this mean I can no longer use emulators to debug Flutter applications on amd64 and x86 PCs?

PANIC: Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host.

@cmjordan42
Copy link

Does this mean I can no longer use emulators to debug Flutter applications on amd64 and x86 PCs?

PANIC: Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host.

x86_64 is still fine. I had this same concern until I realized that for some reason the Android emulator was using an image for x86 (32)

@Andro999b
Copy link

Andro999b commented Apr 27, 2025

How this going to affect emulators on x86 machines?

@mah3456
Copy link

mah3456 commented Apr 28, 2025

  • What went wrong:
    Execution failed for task ':gradle:jar'.

Entry FlutterPlugin.class is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/8.10.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

i have this problem when run andoid

@qeepcologne
Copy link

This misleading message is still displayed in 3.32.0-0.4.pre and also in latest main

Support for Android x86 targets will be removed in the next stable release after 3.27. See
https://github.com/flutter/flutter/issues/157543 for details.

If removal is delayed, please update the message or if architecture is removed, remove the message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 High-priority issues at the top of the work list team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team
Projects
None yet
Development

No branches or pull requests

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy