Hello,
I think I can offer some some more clues to the problem in thread started by
Dale, as archived here:
https://www.mail-archive.com/[email protected]/msg147315.html
I too get the "Your old kernel is broken. You need to update it to a newer
version as syscall(<bignum>) will break." message whenever I try to emerge
glibc-2.17. This happens on all three of my machines, which are kept up to
date and have slightly different configurations. It is likely that many people
are in a broken state, but they don't know it because they haven't tried re-
emerging glibc.
Previously in this thread, I see that Hinnerk van Bruinehsen asked:
> Can you run;
> printf "#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return \
> syscall(1000)!=-1;}\n" > syscall.c && make syscall && ./syscall && echo $?
When I try this on each of my systems, I get the same output:
cc syscall.c -o syscall
Notice that the line with the 0 is missing.
I found a work around: move to an earlier kernel. This problem happens for me
on kernel-3.14.14 and for Dale on kernel-3.15.5. But, it DOESN'T happen for me
on 3.12.21-r1.
When I boot into the 3.12.21-r1 kernel, the printf() above outputs:
cc syscall.c -o syscall
0
as it should.
Could the emerge glibc fail be due to a required kernel configuration option
that didn't make it into 3.14.14 or above?