I've just upgraded Crux from 2.5 to 2.6. As often happens, I misconfigured my new 2.6.30 kernel and got a panic, so I booted the old one (2.6.27). One of my graphical startup programs then crashed in a way I haven't seen before. It wasn't a segmentation error but an abort with an elaborate trace-back printout that seemed to locate the problem within libc.

Meanwhile I was rebuilding the new kernel. This time it booted successfully and the problem with libc also disappeared. This was a new libc (2.10.1 compared with 2.8) and for some reason it did not work reliably with the old kernel.

Could someone explain to me in simple terms why libc should misbehave when a different kernel is used? People change kernels all the time and it doesn't usually cause programs in userspace to crash.