Bug 177238 - fc4 glibc-kernheaders is not current and lacks net/ip_vs.h
Summary: fc4 glibc-kernheaders is not current and lacks net/ip_vs.h
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: glibc-kernheaders
Version: 4
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: David Woodhouse
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-01-08 01:33 UTC by Vince Worthington
Modified: 2007-11-30 22:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-03-09 13:55:12 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
spec file (4.96 KB, application/octet-stream)
2006-01-08 02:01 UTC, Vince Worthington
no flags Details

Description Vince Worthington 2006-01-08 01:33:38 UTC
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:

Comment 1 Vince Worthington 2006-01-08 02:01:55 UTC
Created attachment 122914 [details]
spec file

In case anyone is interested...

Comment 2 Vince Worthington 2006-01-08 02:29:35 UTC
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


Note You need to log in before you can comment on or make changes to this bug.