void-packages icon indicating copy to clipboard operation
void-packages copied to clipboard

[RFC] add sse flags to i686 profile

Open Calandracas606 opened this issue 1 year ago • 11 comments

Testing the changes

  • I tested the changes in this PR: NO

I don't actually have any i686 hardware to test with, but I've built a few packages without issues.

There are several packages which require sse2 and fpmath flags to be added manually.

The void documentation quite clearly states that pentium 4 (sse2) is the base system requirements: https://docs.voidlinux.org/installation/index.html#base-system-requirements

If the base requirements are pentium4, we could alternately set gcc's -march=pentium4 flag

Calandracas606 avatar Jul 18 '24 19:07 Calandracas606

cc @void-linux/pkg-committers

classabbyamp avatar Jul 20 '24 04:07 classabbyamp

Should i686-musl profile be modified similarly?

Using -fmpmath=sse could save some pain with floats on i686. Some packages set -ffloat-store instead, it may be possible to remove that as well.

OTOH, it seems packages using sse on i686 are not that many, and afaik no core package uses sse on i686. This means void linux possibly works just fine without sse, besides a few specific (non-essential) packages needing sse.

tornaria avatar Jul 20 '24 23:07 tornaria

Nah, I would like to have the base system that works without SSE.

sgn avatar Jul 21 '24 01:07 sgn

afaik no core package uses sse on i686

probably correct, most of the failures to boot i686 live images i see are OOMs

classabbyamp avatar Jul 21 '24 01:07 classabbyamp

I understand that the documentation states the minimum requirement is a SSE2 capable CPU, but I wonder, what is the point of having i686 at all then? With that requirement you eliminate most i686 CPUs (pretty much all i686 CPUs except those Pentium 4's are out with that requirement). Later Pentium 4's even support x86_64 so they wouldn't need the i686 version anyway.

If it were for me to decide, I would stick to -march=i686 only and explicitly set the additional flags for those packages that require it.

jhe2 avatar Jul 22 '24 09:07 jhe2

most of the failures to boot i686 live images i see are OOMs

How many people are actually booting Void on pre-2001 hardware?

leahneukirchen avatar Jul 22 '24 11:07 leahneukirchen

most of the failures to boot i686 live images i see are OOMs

How many people are actually booting Void on pre-2001 hardware?

I can't tell you that, but AMD has built CPUs based on the Athlon XP (which is a 32-bit CPU with SSE1, but without SSE2) until 2006. The latest of those CPUs were sold under their budget Sempron brand. Sometimes I run Void on vintage hardware (e.g. on Pentium III machines), not out of necessity, but more because it is fun and can be helpful to get data onto/off of the machine.

If you don't want to support such old machines, that is understandable, if a little bit unfortunate. When going that route though, I would probably drop i686 all together.

jhe2 avatar Jul 22 '24 12:07 jhe2

We can't drop i686-glibc really as it's needed for lib32 support.

leahneukirchen avatar Jul 22 '24 12:07 leahneukirchen

We can't drop i686-glibc really as it's needed for lib32 support.

Sure, I was thinking more about the actual i686 installation media/live images and all the packages required by a complete i686 distro. I would imagine if it was only for lib32 support, you'd have to build a lot fewer packages for i686 than when building for a fully installable distro.

jhe2 avatar Jul 22 '24 13:07 jhe2

Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.

github-actions[bot] avatar Oct 21 '24 02:10 github-actions[bot]

any further thoughts?

feel free to close if this is a change that void does not want to make

Calandracas606 avatar Oct 21 '24 12:10 Calandracas606

Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.

github-actions[bot] avatar Jan 21 '25 01:01 github-actions[bot]