I downloaded the tarball of sources, then made the kernel (but of course can't boot from it and don't want to), and unfortunately, that isn't good enough. It actually dies with two different error messages. One complains about SOCK_CLOEXEC not defined, the other that the kernel is too old. I suppose if SOCK_CLOEXEC is a relatively new feature and my glib, for instance, needs an upgrade, that could explain this.
Code:
x86_64-pc-linux-gnu-gcc -c -I. -I. -march=nocona -Os -pipe -DMAXWIN=100 -DNONETHACK acls.c
libudev/libudev-monitor.c: In function 'udev_monitor_new_from_netlink':
libudev/libudev-monitor.c:199: error: 'SOCK_CLOEXEC' undeclared (first use in this function)
make[2]: *** [libudev/libudev-monitor.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
*
* ERROR: sys-fs/udev-147 failed.
* Call stack:
* ebuild.sh, line 49: Called src_compile
* environment, line 3610: Called die
* The specific snippet of code:
* emake || die "compiling udev failed"
* The die message:
* compiling udev failed
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/var/log/portage/sys-fs:udev-147:20091123-032820.log'.
* The ebuild environment file is located at '/var/tmp/portage/sys-fs/udev-147/temp/environment'.
*
>>> Failed to emerge sys-fs/udev-147, Log file:
>>> '/var/log/portage/sys-fs:udev-147:20091123-032820.log'
* Messages for package sys-fs/udev-147:
*
* udev-147 does not support Linux kernel before version 2.6.25!
* For a reliable udev, use at least kernel 2.6.27
*
* udev cannot be restarted after emerging,
* as your running kernel version (2.6.31.5-x86_64-linode9) is too old.
* You really need to use a newer kernel after a reboot!
Other than fiddling with the ebuild itself as a temporary hack, is there some way to get around this?