From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050922 Fedora/1.0.7-1.1.fc4 Firefox/1.0.7 Description of problem: The glibc-kernheaders package available for FC4 does not provide a net/ip_vs.h header file, and is apparently not even a set of kernel headers for 2.6.x kernels. Keepalived is an LVS/IPVS configuration, management, and monitoring package similar to Red Hat's Piranha software. With recent "gcc and company" updates to FC4, it now no longer seems possible to compile a keepalived package that 1) has any IPVS features compiled in, because it can't find a net/ip_vs.h file it is allowed to use, and 2) realizes there is a 2.6 kernel on the system, because the glibc-kernheaders package seems to be for a 2.4.20 kernel when trying to point it to /usr/include or /usr/include/linux as the location for kernel headers. This is apparently due to the glibc-kernheaders package being for the wrong (2.4-series) kernel and also lacking the header files it wants to look at (net/ip_vs.h for example). The result is a useless keepalived package. Until recent FC4 package updates were installed, the workaround was to use --with-kernel-dir=/usr/src/kernels/<whatever> to point the keepalived ./configure script at a kernel-{,smp-}devel set of kernel headers, so it could find enough information about what kind of kernel keepalived would be working with. Keepalived doesn't have to be built against the kernel sources it will be running under (ie there are no kernel modules built), but it DOES need enough information about the kernel's capabilities to know what features it can build and which ones it can't (and for which kernel branch, 2.4 or 2.6). Unfortunately gcc now complains and terminates with an error when pointing keepalived's ./configure script at a kernel-smp-devel directory (ie /usr/src/kernels/<version>): Version-Release number of selected component (if applicable): glibc-kernheaders-2.4-9.1.94 How reproducible: Always Steps to Reproduce: 1. obtain and unpack keepalived sources from www.keepalived.org 2. try to run configure script using --with-kernel-dir=/usr/include among configure options 3. try to run configure script using --with-kernel-dir=/usr/src/kernels/<whatever version of kernel-{,smp-}devel package you wish when #2 fails to configure build properly because it finds a kernel version 2.4.20 in /usr/include/linux/version.h and can't find an ip_vs.h anywhere under /usr/include Actual Results: /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/linux/config.h:6:2: error: #error including kernel header in userspace; use the glibc headers instead! In file included from /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/asm/param.h:1, from /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/linux/param.h:4, from /usr/include/sys/param.h:24, from /usr/include/arpa/nameser.h:56, from ../../lib/utils.h:34, from ../include/main.h:36, from main.c:25: /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/linux/config.h:6:2: error: #error including kernel header in userspace; use the glibc headers instead! In file included from /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/asm/param.h:1, from /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/linux/param.h:4, from /usr/include/sys/param.h:24, from /usr/include/arpa/nameser.h:56, from ../../lib/utils.h:34, from daemon.c:27: /usr/src/kernels/2.6.13-1.1526_FC4smp-i686/include/linux/config.h:6:2: error: #error including kernel header in userspace; use the glibc headers instead! Expected Results: that keepalived would believe you wish it to be built for a system running a 2.6-series kernel that has IP Virtual Server support in the kernel when using the glibc-kernheaders package we provide. Additional info:
Created attachment 122914 [details] spec file In case anyone is interested...
umm, sorry, looks like I got this figured out. exporting CFLAGS="$RPM_OPT_FLAGS -D__KERNGLUE__" prior to configure and make let me include the headers in kernel-{,smp-}devel without griping at me. Seems like we should still have a better set of headers in glibc-kernheaders, certainly a more recent one. Feel free to close this BZ if you prefer. But if we're supposed to not be including kernel headers in userspace, having a better set of them in glibc-kernheaders might be good to do before we get to RHEL5. --vince