Hi!
Compilation of iproute2 package fails on iptunnel.c because it includes
asm/byteorder.h which in turn includes linux/byteorder/little_endian.h
and in new 2.6.9 headers that declares function
static inline __le64 __cpu_to_le64p(const __u64 *p)
The __le64 type is not defined here. This happens because linux/types.h
defines this type only if __KERNEL_STRICT_NAMES is not defined. And by
default it is defined in features.h
I've tried to define it, but this creates conflicts for dev_t and other
types that are defined in sys/types.h
So, what should be the work around in this case?
Specifically the error is
make[1]: Entering directory `/tools/src/iproute2-2.6.9/ip'
gcc -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -I../include -DRESOLVE_HOSTNAMES -c -o iptunnel.o iptunnel.c
In file included from /usr/include/asm/byteorder.h:31,
from iptunnel.c:29:
/usr/include/linux/byteorder/little_endian.h:43: error: parse error before "__cpu_to_le64p"
/usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_le64p':
/usr/include/linux/byteorder/little_endian.h:45: error: `__le64' undeclared (first use in this function)
....
Andrei