Distributions Falsely Advertising <= i686/Pentium3 support, or CPUs without SSE2!
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distributions Falsely Advertising <= i686/Pentium3 support, or CPUs without SSE2!
There are many Linux distributions falsely advertising less than or equal to i686/Pentium3 support, or claim to support CPUs without SSE2 instruction set!
Slackware now appears guilty of this.
So far, the only true Linux distributions verified as supporting CPUs not having the SSE2 instruction set is Alpine Linux, and possibly AntiX Linux, as AntiX Linux compiles for i386. (However, I have not verified AntiX due to anti-capitalism/zionist comments, I'd rather just avoid the whole mess.) I'm thinking, it is likely possible to compile for i386 with adding SSE2?
The earliest computer architectures having SSE2 were the very last few Pentium3 CPUs manufactured by Intel, while most Pentium3 CPUs only have SSE and lack SSE2 instruction set. (See Wikipedia references below.)
A very simple test, install the Linux distribution and then install the FFmpeg package. If executing ffmpeg/ffplay/ffprobe succeeds on a CPU not having the SSE2 CPU instruction set, the distribution is likely compiling packages supporting <= i686 or <= Pentium3 CPUs.
If the distribution is compiling packages for SSE2, ffmpeg/ffplay/ffprobe will immediately exit with an error printed to stdout "Illegal Instruction". This is because some of the compiled code were written for processing within the SSE2 CPU register. Another more suave example of such code compiled for SSE2, all Mozilla SeaMonkey versions past a certain version have been compiled for SSE2 CPUs, and the program quickly exits without error upon execution. SeaMonkey's illegal instruction error is only seen while running through a debugger such as GDB/strace. The reason some of these packages are being compiled with SSE2, rust programming language requires SSE2, and rust language has been quietly introduced as a dependency for many programs such as SeaMonkey, possibly FFmpeg(?) and lately a few other base system level packages.
For reference, see SSE2 Wikipedia and Streaming SIMD Extensions Wikipedia pages, respectively searching for SSE2 and Pentium within the pages.
This situation almost deserves it's own Wikipedia page.
That SSD2 and SMID was real stinker on a different distro way back when. Some of the bio's had support to select it on or off to help fix that. I think it was an AMD board.
Please cite the Slackware documentation (not a wiki, actual docs in the Slackware tree) which says it supports i686 without SSE2.
Given that i686 with SSE2 constitutes only a certain subset of all CPUs that can be labeled "i686", I don't think it's unreasonable to assume that unless otherwise stated, i686 means just that, rather than "i686-SSE2."
Slackware Linux doesn't require an extremely powerful system to run (though having one is quite nice . It will run on systems as far back as the 486. Below is a list of minimum system requirements needed to install and run Slackware.
486 processor
64MB RAM (1GB+ suggested)
About 5GB+ of hard disk space for a full install
CD or DVD drive (if not bootable, then a bootable USB flash stick or PXE server/network card)
/* end quote */
Like I previously stated, not sure if i486 can be compiled with SSE2 ... on AMD CPUs?
Regardless, I think the SSE2 requirement should be specified somewhere, as there are many i686/Pentiu3 Intel CPUs without SSE2!
There is a post on Reddit, "Any Linux distro that runs on (very old) non-SSE2 hardware? No GUI required." with commentators, having no other suggestions aside from installing Slackware-14.2.
So far, Alpine-3.15 seems to be sincerely non-SSE2 specific, as I'm tinkering for the past many hours with the installed OS on a Pentium3 non-SSE2 CPU system.
I also noticed some mention during the development of the latest Slackware release, about submitting patches or compiling rust with SSE only, but the effort seems to have possibly waned.
Slackware Linux doesn't require an extremely powerful system to run (though having one is quite nice . It will run on systems as far back as the 486. Below is a list of minimum system requirements needed to install and run Slackware.
486 processor
64MB RAM (1GB+ suggested)
About 5GB+ of hard disk space for a full install
CD or DVD drive (if not bootable, then a bootable USB flash stick or PXE server/network card)
/* end quote */
You're quoting a website that hasn't been updated since the early 2000s. Aside from the front page, everything on slackware.com should be considered out of date.
Quote:
Originally Posted by rogerxx
Like I previously stated, not sure if i486 can be compiled with SSE2 ... on AMD CPUs?
Slackware hasn't supported i486 in decades....
Quote:
Originally Posted by rogerxx
Regardless, I think the SSE2 requirement should be specified somewhere, as there are many i686/Pentiu3 Intel CPUs without SSE2!
i586 CPUs are not supported by Slackware. The minimum required CPU is an i686 - this has been the case for years.
Quote:
Originally Posted by rogerxx
There is a post on Reddit, "Any Linux distro that runs on (very old) non-SSE2 hardware? No GUI required." with commentators, having no other suggestions aside from installing Slackware-14.2.
As would be expected for anything posted on Reddit, those commenters are wrong
Your original post seems to be nothing but a rant based upon your finding old - outdated - information and not digging further than a cursory google search.
You could have posted here asking the question about CPU support, but you chose to post a rant - you've not got off to a good start with your interactions with the community.
Not ranting. Just making a statement or noting what I'm seeing throughout Linux distributions, implying feedback or other users' experience.
Maybe I should rephrase the topic/subject to appear more sensitive towards every possible sensitive person or rephrase for people misinterpreting statements as seeming threatening?
Spending time asking the forums about small details such as CPU support, seems like something that should be accurately reflected upon each Linux distribution site.
Sort of like asking your local building department if you're allowed to mow your residential grass, or if you need a permit. Or, asking a new car salesman if the new car you're buying has an engine, when the nomenclature already specifies a 3.0 liter engine.
Maybe I should rephrase the topic/subject to appear more sensitive towards every possible sensitive person or rephrase for people misinterpreting statements as seeming threatening?
Excuse my ignorance, but for a non native English like me, the words "false advertising" are clearly an accusation. You claim that Slackware says lies, right?
So, basically you have discovered that the Slackware site contains outdated information. You are kidding me? This is the great discovery announced in a thread with a title containing heavy words?
I have news for you, buddy! We know since really long time that the information from Slackware website is widely outdated - including the almost all information presented.
That's it. Looks like our BDFL does not have time or he just does not bother to have a fancy site like Gentoo.
However, I for one I believe that someone who expects to install Slackware 15.0 and have a full multimedia and GUI in an ancient Pentium III, is simply nuts. No offense intended!
Heck, my last Pentium III box had 64MB memory, a hard drive of 1GB (yes, this is not a typo: it had ONE GB storage) and a S3 Virge as graphics card - probably with 1MB dedicated memory. And yeah, IF I remember right, the CPU even had SSE2 support.
BUT, this like is the hardware we talk about and on hardware like this the Slackware installer will not even boot and there is no storage space to install a GUI system while the system memory is not enough even to run the kernel itself.
As bottom line, my own request is this: people, let's appeal at common sense!
Last edited by LuckyCyborg; 05-22-2022 at 03:03 AM.
That's odd. I've recently installed more than one 32bit Slackware systems from 12.2 up to 15.0. Here's a sample of the kernel config
Code:
### /boot/config
# CONFIG_M486SX is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
CONFIG_MPENTIUMIII=y
# CONFIG_MPENTIUMM is not set
CPU support begins in the kernel. Since Slackware's kernel is Vanilla, these are supported. I can assure you that even an i586 package which is the basis by default in Slackware 15.0 32 bit, will run on an i486 selection almost as well as on i586.
Granted I haven't owned and operated an actual 486 CPU in decades but I have run kernels with Processor Type set as i486 on a 9th Gen CPU. So I suppose just having the hardware capability could somehow conceivably make a noticeable difference without software support but I highly doubt it.
Bottom Line - i486 is still supported FWIW.
Note" I'm saying FWIW with considerable irony (and not a little "WTF?") since just this year I bought a working T60 Thinkpad with Core 2 Duo, 15.4" display and 2GB RAM , VASTLY more powerful that a Classic Pentium let alone a 486 (I don't care what DX it is) for $34. OK so the power brick cost that much, too, but I already had it for my T61P that I still use.
The Slackware kernel may support a 486 CPU (which I'm not convinced of by any means, but really can't be arsed to spin up a virtual machine to prove it ) as its base architecture, but AFAIK the Slackware userland does not.
The i586 in the Slackware package name's architecture is the base that the userland supports, regardless of the kernel.
Additionally, there are a number of Slackware packages which only support CPUs of 686 or better - I doubt, for instance, that you could run firefox on a 486, even if you could get the 586 userland working on that CPU.
I guess the only person who can give a definitive answer is Pat...
i586 CPUs are not supported by Slackware. The minimum required CPU is an i686 - this has been the case for years.
My apologies - I should have said the Slackware distribution (as a complete distribution) requires i686 as there are a number of packages that require that architecture. The userland is compiled for i586 as a minimum supported architecture, optimised for i686 AFAIK.
Well guys I suppose there could be some other explanation but attached is the /var/log/packages from my current hybrid installation of a 32 bit Slackware system on my 10th Gen Intel box and the number of i486 packages, as you may see, vastly outnumber i586 packages. There are a few i386 packages. It runs just fine.
Last edited by enorbet; 05-22-2022 at 08:07 AM.
Reason: failed attachment
IIRC, there's basically no difference between i586 & i686 optimisations, and no material speed advantage. I was interested at the time, because I had the AMD '586-133 P75 which was a jumped up '486 which also handled Pentium(i586) instructions. I686 was the Pentium 2. It had few instructions the Pentium didn't handle, and there was no appreciable speed advantage. In fact, some argued that it was slower.
You'd also need a compiler that used the pentium 2 instructions. In all my years hanging out on forums, I never heard of anyone caught with an i686 program when they only had an i586 cpu. Did you?
IIRC, there's basically no difference between i586 & i686 optimisations, and no material speed advantage.
Quote:
Originally Posted by business_kid
You'd also need a compiler that used the pentium 2 instructions. In all my years hanging out on forums, I never heard of anyone caught with an i686 program when they only had an i586 cpu.
Optimization and CPU architecture are two different compiler settings.
For instance, you can optimize for i686 while compiling for i586. That means the compiler will use only instructions that work on i586 (Pentium) or later CPUs, while generating code that will run at optimal speed on an i686 (Pentium Pro).
Here's the GCC documentation covering the various -march and -mtune settings, as well as the switches used to enable various extensions such as MMX, SSE etc.
SSE2 is not enabled by default by GCC when compiling with -march=i686. It would seem that the build scripts for some 32-bit Slackware packages explicitly enable SSE2, which technically makes them incompatible with "i686" (even though the package name is "<something>-<version>-i686-<revision>.tgz").
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.