Who needs i586 TW for CPUs without SSE2 support?

What is the minimal CPU requirement for TW?
I think TW silently requires SSE2 for OpenSSL.
It is possible to compile OpenSSL and other packages for older CPUs with pure i586 (without NX bit?).

https://wiki.openssl.org/index.php/Compilation_and_Installation

From “Bug 1102737](1102737 – Install does not work on Pentium III machine) - Install does not work on Pentium III machine”:

This issue might solved with Fatal FIPS Selftest Failures | Support | SUSE.

Or there is another case: x86-64 (AMD64) obliges realization for some instructions in CPU: NX bit, SSE, SSE2, etc. Nowadays x86-64 is the default target for OSes. During compiling for TW with i586 flavour ILL developers apply the same settings for OpenSSL and other packages. In rare cases this causes incompatibility with old CPUs, which lacks support for SSE/SSE2/etc. It is possible to compile OpenSSL and other stuff for that CPUs with changed settings, but who will use it? Without SSE/SSE2 OpenSSL works rather slower.

OPENSSL_ia32cap - the x86[_64] processor capabilities vector: OPENSSL_ia32cap(3ssl) — Arch manual pages

Developers are ready to drop support for 32-bit CPUs (x86), so ILL no one cares about that corner case.

And https://bugzilla.opensuse.org/show_bug.cgi?id=1190409
https://bugzilla.opensuse.org/show_bug.cgi?id=1162283

https://bugzilla.opensuse.org/show_bug.cgi?id=1162283#c9

Stefan Dirsch 2022-01-07 21:07:17 UTC

We saw similar issue with Mesa (boo#1190409, “-msse2” option) . Do we really need/want to support such old machines from 2001 and older?

Default enable SSE2 on mesa builds. (!9868) · Merge requests · Mesa / mesa · GitLab

What does this mean for users? On Linux raises the default minimum processor spec to SSE2 supporting CPUs

Intel requirements raise from P5 (1993) to Netburst (2000)
AMD requirements raise from Athlon(1999/2000) to Athlon 64 (2003)
Via requirements raise from C3(2001) to C7 (2005)

Default enable SSE2 on mesa builds.

But Mesa 3D for openSUSE can work without SSE2 because of this patch: https://build.opensuse.org/request/show/944902

From bug reports I understood that some guys still use 32-bit x86 CPUs without SSE2. And even without PAE.
It works with additional efforts from developers. But system often breaks because of x86-64 standard obliging SSE2 support.

One “who” seems to be the comment 6 author in bug 1162283. Likely there are other driver developers and/or packagers of software for old hardware that take advantage of the lighter demands of 32bit TW compared to some other 32bit distros. Hard requires for SSE2 would chase such people off of TW, though it seems as a practical matter this may already be happening. Some providers of 32bit distros seem to be pretty proud of it, while these TW installation instructions suggest SSE2 requirement may be all but official.

IMO, i586 package labels should not be used for anything requiring SSE2, since only some 686+ CPUs even provide it.

I already changed this requirement. I thought that OpenSSL requires SSE2, but, after deeper exploration, I realised, that it could be compiled without SSE2.

It is possible to emulate SSE2 commands with FPU:

https://reactos.org/forum/viewtopic.php?t=18071
https://software.intel.com/en-us/articles/intel-software-development-emulator/
GCC 10 Lands Support For Emulating MMX With SSE Instructions

Google Chrome requires SSE3:
https://www.tomshardware.com/news/chrome-stops-working-on-old-processors
https://support.google.com/chrome/a/answer/7100626?hl=en

Firefox for Linux may work without SSE2:
https://bugzilla.mozilla.org/show_bug.cgi?id=1271755
https://forums.linuxmint.com/viewtopic.php?t=286376
https://forums.gentoo.org/viewtopic-t-1130031.html
https://www.reddit.com/r/openSUSE/comments/6szxr8/next_steps_for_firefox_on_tw/