Hacker News new | ask | show | jobs
by human_banana 2377 days ago
Maybe because nobody uses 32-bit x86 anymore?
4 comments

No, that's the i386 architecture, which is still well supported AFAICT. x86_32 is a funny architecture that requires 64 bit chips but uses 32 bit pointers.

http://www.h-online.com/open/features/Kernel-Log-x32-ABI-get...

This post is about i386 / x86_32. What you're referring to is "x32," a different thing entirely, which uses the x86-64 instruction set. You can tell this post is not about "x32" because it talks about "segments, gates, and other delights from the i386 era," which don't exist on the x86-64 architecture regardless of how long your pointers are, and it says things are "fine on a 64-bit kernel" (x32 uses a 64-bit kernel, it's a userspace ABI only).
No, see the source from Linux kernel:

https://github.com/torvalds/linux/blob/master/arch/x86/Kconf...

For all x86 processors, now there is a name "X86_32" which "depends on !64BIT" (i.e. 64BIT flag has to be off).

and there is a name "X86_64" which "depends on 64BIT" (i.e. 64BIT flag being on).

Under new convention X86 is a common prefix for both 32 and 64-bit kernels for x86 processors, and the suffix _32 means the kernel uses only 32bit instructions, and _64 that it uses 64bit instructions.

And also, there's handling of an old arch name "i386" which is recognized to mean 64BIT is off and if only "x86" is seen as arch name then there is a prompt that asks 64BIT yes or no. It also notes that the old name used for kernel with 64BIT off was "i386" and the old name used for kernel with 64BIT on was "x86_64".

Finally, the support for X32 ABI (allowing running executables which use 64-bit instructions but only "short" 32bit pointers in 64-bit kernel https://en.wikipedia.org/wiki/X32_ABI) is enabled in my 64-bit distro:

    ~$ sudo grep -P G_X86_X?\\d{2}= /boot/config-$(uname -r)
    CONFIG_X86_64=y
    CONFIG_X86_X32=y
The first line means this is a 64bit kernel for x86 processors, the second that X32 support is enabled on that kernel.

In short, there are two kinds of X86 kernels:

X86_32 -- formerly known as i386

X86_64 -- formerly known as x86_64

and an option for existence of X32 ABI in X86_64 called CONFIG_X86_X32.

Beatuiful, high-value reply. Thank you for making the connection to upstream and unpacking things with good, concise exposition.
No, that’s “x32”. “x86_32” is not an official name for anything, but based on the contents of the post, I believe Andy Lutomirski is using it to refer to 32-bit x86, aka i386.
And I believe he meant i686. Latest Intel CPU's with 32bit pointers.
x86-64 procesors can generally be run in IA32 compatibility mode. And intel still makes some IA32-only chips for embedded.
Your comment should be the top comment. I had no clue i386 and x86_32 where different. I though the article was saying 32bit linux is broken.... but no some strange "alternative" mode on linux is broken.... who cares.
The comment is wrong. It is about i386.
There were 32-bit netbooks being sold the last time I looked in 2015.
Unfortunately, upstream doesn't really notice if 32-bit x86 breaks. This isn't just a kernel problem; glibc managed to push out a release back in 2017 that broke memchr on 32-bit Atom in a way that tended to cause programs calling it to segfault. It turns out that amongst a few other things, including Python, the glibc build process itself relies on memchr working... I don't think they actually tested the code path in question after modifying it.
Of course it was tested [on the developers' x86_64 laptop(s)]!
Sure, but the ones that pay the bills are servers and companies which don't care one bit about i386.
Agreed, however open source has always relied on enthusiasts for consumer-grade hardware support.
The really fun part was when they launched the first 64 bit Atom CPUs (Bay Trail) and then a bunch of them got shipped with only 32 bit UEFI and cannot boot in 64 bit mode.
They have to _boot_ with a 32-bit UEFI bootloader, but can run a 64-bit kernel and userland. Fedora Linux even allows for this while keeping secure boot on; Debian supports it as well but the interaction with secure boot is buggy, so you need to turn it off. Not sure about other distros, however.
Early 64-bit Intel Macs also shipped with a 32-bit UEFI limitation, but they were able to boot into a 64-bit system.
Jesus was closer to dinosaur times than we are to 2015.
Casual computer users don't buy new computers each year. Pretty sure set top boxes and routers with 32-bit x86 processors have been sold since then, too.
Are you Him?
My old Atom laptops still run perfectly fine. Thanks, Debian.
If only... I have been hoping for a native x64 version of Visual Studio for almost a decade, and signs do not look good for that ever coming to fruition. As it is, loading up solutions that consume nearly 2GB of RAM are still bringing the IDE to its knees and making it thrash and page.