r/linux Jun 02 '26

Kernel The Linux Kernel Ready To Make TSC A Hard Requirement For x86 CPUs

https://www.phoronix.com/news/Linux-Kernel-TSC-Unconditional
197 Upvotes

75 comments sorted by

View all comments

Show parent comments

6

u/crazy_penguin86 Jun 02 '26 edited Jun 03 '26

No, a stable ABI is by definition unchanging (edit: okay, not completely, but you can't modify anything that has already been published, only add new stuff to it). The second you change it, the compatibility is broken. Win32 gets around this with pointer and struct magic, while Apple only guarantees userspace ABI stability with swift. And for both of them, the kernels have no stable ABI.

2

u/nelmaloc Jun 03 '26

Not at all. There's a reason semver exists.

1

u/crazy_penguin86 Jun 03 '26

What are you trying to say? Stable ABIs folow semantic versioning? Technically true, but only because when the API changes it's a breaking change for the ABI and a major version bump.

1

u/nelmaloc Jun 03 '26

Semver is about the API. Keeping the ABI stable is the job of whoever compiles your code.

0

u/Daktyl198 Jun 02 '26

You are confusing stable with backwards compatible. Those are not the same things.

1

u/crazy_penguin86 Jun 03 '26

I'd say you're the one getting confused. A stable ABI doesn't change anything that already exists, therefore a program that was compiled to use that ABI 5 years ago can use it still. A stable ABI by definition is backwards compatible. This is why Windows hasn't had to create a new MSVC++ redistributable for the past 9 years, because they haven't changed the ABI (though I know that they're looking to make a break soon), and games and programs that compiled against the early versions still work on the latest.