Comment by o11c

2 days ago

Note: the underlying blame here fundamentally belongs to whoever built AGP / Gradle with non-universal flags, then distributed it.

It's fine to ship binaries with hard-coded cpu flag requirements if you control the universe, but otherwise not, especially if you are in an ecosystem where you make it hard for users to rebuild everything from source.

Exactly. Everything should be compiled to target i386.

/s (should be obvious but probably not for this audience)

  • They should be compiled for the CPU baseline of the ABI they are using, and check if newer instructions are available before using them. This is what Debian does, so they can have maximum hardware support.

    https://wiki.debian.org/InstructionSelection

    • Why? There's nothing wrong with having minimum requirements beyond that. They don't have to use Debian's policy, and multiversioning adds enough complexity that basically nobody does it (I've only ever seen it used in video codecs).