Messages in this thread | | | From | Keith Owens <> | Subject | Re: 2.4.15-final drivers/net/bonding.c includes user space headers | Date | Mon, 26 Nov 2001 13:06:37 +1100 |
| |
On 25 Nov 2001 13:49:33 -0800, "H. Peter Anvin" <hpa@zytor.com> wrote: >By author: Keith Owens <kaos@ocs.com.au> >> >> 2.4.15-final/drivers/net/bonding.c:188: #include <limits.h> >> >> Kernel code must not include use space headers. I thought this had >> been fixed. It will not compile in 2.5. > ><limits.h> is one of the compiler-provided headers, i.e. from >/usr/lib/gcc-lib/*/*/include -- if your kbuild harness don't >allow those headers to be included, it's broken.
kbuild 2.5 does '-nostdinc -I/usr/lib/gcc-lib/... gcc version ../include/' so it allows includes from the compiler headers. The problem is:
bonding.c includes limits.h, picked up from gcc, OK. limits.h includes syslimits.h from gcc, OK. syslimits.h tries to include_next <limits.h> to get the user space limits, not OK.
Any kernel code that includes limits.h or syslimits.h is polluted by user space headers. net/bonding.c does not even need limits.h.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |