Skip to content

Deprecate support for ia32 #157543

Closed
Closed

Description

@a-siva

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

Activity

  1. added
    P1High-priority issues at the top of the work list
    team-toolOwned by Flutter Tool team
    triaged-toolTriaged by Flutter Tool team
    on Oct 24, 2024
  2. nathfavour commented on Feb 1, 2025

    @nathfavour

    Hi, if I may ask, why deprecate x86 tho

  3. bkonyi commented on Feb 10, 2025

    @bkonyi
    Contributor

    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.

  4. nathfavour commented on Feb 10, 2025

    @nathfavour
  5. KannRangsey commented on Feb 14, 2025

    @KannRangsey

    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

  6. 27 remaining items

  7. jmagman commented on Jul 8, 2025

    @jmagman
    Member

    What happens to apps working on Smart TVs ?
    Most (if not all) embedded operating systems on the televisions are based on x86 architacture (androidOs and other)

    @YahalomsGuy (or @trassos or @VEMUC002) can you clarify which TV devices/models/hardware you're talking about? And on which version of Flutter you're using to run on those devices? JIT release x86 was removed in flutter-team-archive/engine#56681. Are you building your own Flutter engine?

    Even all the emulators I could find to debug an app are x86.

    Can you clarify exactly what x86 emulator you're finding?

    Does it mean that from now one should connect a x64 based device to work with a TV ?

    Do you mean connect an x64 host device running Flutter, tethered to a TV? Or do you mean you're running on some kind of smart TV stick?

    Thanks for any specifics here.

  8. trassos commented on Jul 9, 2025

    @trassos

    @jmagman @YahalomsGuy
    Although I’ve marked those comments favorably, my primary concern differs slightly. I’m more focused on older and widely rebranded/revised white-label POS devices.

    Take the RK3288, for example. If we freeze our Flutter project on version 3.27, will it remain functional on this chip?

    There are also several x64 CPUs that, while technically compatible, suffer from notable performance issues — including the J3455, J4125, N4020, J6412, and J1900.

    In most cases, devices using this hardware come with less than 4 GB of RAM and run some form of customized/stripped Android.

  9. jmagman commented on Jul 11, 2025

    @jmagman
    Member

    RK3288

    @trassos That's ARM32, not x86, so wouldn't be impacted by this change. https://dart.dev/get-dart#system-requirements
    If you are aware of x86 hardware you think we should support, please let us know the devices/models.

  10. Farg0k commented on Sep 2, 2025

    @Farg0k

    What to do with virtual TV devices? They are all x86.

  11. YahalomsGuy commented on Sep 2, 2025

    @YahalomsGuy

    What to do with virtual TV devices? They are all x86.

    In x86 computers , you can only install x86 emulators
    But in computers with ARM processors (like Mac Silicon / M series) computers, you can add ARM based emulators.

  12. Farg0k commented on Sep 2, 2025

    @Farg0k

    What to do with virtual TV devices? They are all x86.

    In x86 computers , you can only install x86 emulators But in computers with ARM processors (like Mac Silicon / M series) computers, you can add ARM based emulators.

    Solution to the problem: a new PC?
    Preferred ABI in most mobile virtual devices has arm, but TV only has x86.
    Maybe there's something I don't know?

  13. reidbaker commented on Sep 2, 2025

    @reidbaker
    Contributor

    What to do with virtual TV devices? They are all x86.

    The support that was dropped was 32 bit x86 devices not all x86 devices.

  14. Farg0k commented on Sep 3, 2025

    @Farg0k

    What to do with virtual TV devices? They are all x86.

    The support that was dropped was 32 bit x86 devices not all x86 devices.
    But why do I see that?

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

  15. reidbaker commented on Sep 4, 2025

    @reidbaker
    Contributor

    @Farg0k
    Where do you see "Support for Android x86 targets will be removed in the next stable release after 3.27. See #157543 for details."

    Hopefully it is someplace I can update. FWIW that bug does say that x86_64 is supported.

  16. bkonyi commented on Sep 4, 2025

    @bkonyi
    Contributor

    @Farg0k Where do you see "Support for Android x86 targets will be removed in the next stable release after 3.27. See #157543 for details."

    Hopefully it is someplace I can update. FWIW that bug does say that x86_64 is supported.

    Looks like there's just a stray constant that's not actually referenced anywhere:

    const androidX86DeprecationWarning =

    I'll remove it.

  17. reidbaker commented on Sep 4, 2025

    @reidbaker
    Contributor

    AH, we probably printed that warning, which was poorly worded, on an older version of flutter so there is no documentation to update.

    Sorry for any stress we caused you @Farg0k.

  18. github-actions commented on Sep 18, 2025

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  19. locked as resolved and limited conversation to collaborators on Sep 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

P1High-priority issues at the top of the work listfyi-toolFor the attention of Flutter Tool teamteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions