Baselayout-2 / udev wants the kernel config -- FIXED
I am just starting here, trying to set up a gentoo image. I updated the profile and am trying to remerge system, and world, but first I want to upgrade to baselayout-2.
The problem is udev wants the kernel config. It is looking in /usr/src/linux, which emerge populated with linux-2.6.31-r6. That's nice, but I haven't built a kernel because it boots off the Linode kernel, and I don't want to make up my own config which is unrelated to what actually boots.
First off, this sounds silly, but do I need udev on a Linode image? I suspect so, but I figure I meed to confirm that.
One way to get udev to merge would be to get the config used by the Linode booting kernel (220.127.116.11-x86_64-linode9). Is this available? I don't mind stuffing it into /usr/src/linux and building a kernel to fool udev.
Are there other ways to fool udev, or is there a better solution doing something entirely different?
Alternatively, if it's a 2.6 kernel, /proc/config.gz should provide you with the active configuration, though whether or not that's sufficient for a particular application or tool chain would depend on the specific tool at hand.
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: *** [libudev/libudev-monitor.lo] Error 1 make: *** Waiting for unfinished jobs.... make: *** [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 (18.104.22.168-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?
The bug you posted regarding SOCK_CLOEXEC was fixed in around 2.6.28… and the error you posted suggests ebuild thought it had detected an older-than-2.6.25 kernel version in /usr/src/linux.
In a pinch, you could apply a trivial custom modification to the kernel sources if you wish, to assist in getting past that barrier:
Apologies for borking it and asking for help. I ought to know better by now!