Hacker News new | ask | show | jobs
by zerocrates 4134 days ago
See the original commit for it [1].

Basically, some programs had issues working with Linux 3.x version numbers, so the kernel can lie to these and say that its version isn't, say, 3.0, but actually 2.6.40. This was implemented by just taking the kernel minor version number and adding 40 to it and tacking that on to "2.6."

So, the problem here is that version 4.0 has that same code, so it's also going to fake-report its version as 2.6.40 when using the UNAME26 personality.

[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...

1 comments

Isn't that kind-of okay though? If a program now started to depend on 2.6.43 (or any other >= 40 version), isn't it seriously broken anyhow?
A surprisingly large amount of code still works. If your code is statically linked the syscalls have not changed, due to Linux's backwards compatibility guarantees, and if it was dynamically linked against glibc the glibc compat may work, or you can just use the old glibc and linker.

How much useful code there is that cant be recompiled I dont know, but I am sure people have some, and they probably dont want to run it in an old unsupported distro.