Gentoo x86-64-v3 binary packages available

2 years ago (gentoo.org)

If like me you were unaware of the "x86-64-v.." classification, here is an overview: https://developers.redhat.com/blog/2021/01/05/building-red-h...

Lack of -v3 binaries are common in Docker containers. Most, if not all of development, CI and deployment targets support -v3. And yet images like Postgres or Redis are built with the absolute lowest common denominator in mind.

How many CPU cycles are wasted globally because of this? It’s nuts

I wonder what happened to Arch Linux's sub-architecture support.

There was talk years ago about this. Pacman supposedly got updates, and it was just a matter of kicking the building infrastructure into gear.

But years passed, and still nothing.

> That said, in some processor lines (i.e. Atom), support for this instruction set was introduced rather late (2021).

Just one little sentence at the end but quoting it since it feels important.

  • These are bad processors born out of ridiculous market segmentation done by Intel for which we pay for dearly (also worth calling out making ECC server-only feature, because profit, exabytes of user data corrupted be damned).

    Not only they are not worth targeting, it is a moral imperative not to consider them for pieces of software like PostgreSQL. If the push comes to shove, a "-compat" or "-legacy" flavour of binaries can be offered to select few users which use older systems with CPUs made before 2011 (pre-Sandy-Bride and Jaguar respectively), which would allow the overall ecosystem get healthier while not leaving affected people behind.

    • The Atom-based processors are bad not because of market segmentation but because Intel is perennially unable to make more than one good architecture at a time. The ones that are bad because of market segmentation are the processors with a Core family microarchitecture lobotomized down to the i3, Pentium or Celeron product lines, leaving them years behind on feature support that's physically present but fused off.

    !!! The following binary packages have been ignored due to non matching USE:

        =sys-libs/glibc-2.38-r10 -multilib -stack-realign
        =sys-libs/glibc-2.38-r10 systemd

So in order to use binary packages, I either need to switch to systemd, or switch to no-multilib and manually enable all the desktop-related USE flags. Seems too tedious to bother right now.

  • If you're currently building from source, presumably you have `-march=native` in your CFLAGS anyway, so you wouldn't gain any perf improvements from using the pre-compiled ones.