Preferred method to correct a Debian-specific problem?
Al Stone
ahs3 at fc.hp.com
Mon Mar 26 18:40:02 UTC 2007
While compiling along on a Debian system (sid/unstable, so it's all
new and shiny kernels and compilers), I ran into this error:
$ make defconfig
$ make
...
CC libc/inet/getaddrinfo.os
CC libc/inet/in6_addr.os
CC libc/inet/ether_addr.os
In file included from /usr/include/linux/if_ether.h:24,
from ./include/netinet/if_ether.h:26,
from ./include/netinet/ether.h:26,
from libc/inet/ether_addr.c:31:
/usr/include/linux/types.h:11: error: redefinition of typedef '__kernel_dev_t'
./include/bits/kernel_types.h:53: error: previous declaration of '__kernel_dev_t' was here
make: *** [libc/inet/ether_addr.os] Error 1
This is apparently even a known bug in Debian (#269721). The
question is, how to fix it? The problem is that there is indeed
another definition of __kernel_dev_t in /usr/include/linux/types.h,
inserted by the Debian maintainers to work around some pre-2.6
problems.
My initial thought was to create a new configuration variable
(UCLIBC_DEBIAN_WORKAROUND?) that's off by default, with an #ifdef
in sysdeps/linux/$ARCH/kernel_types.h around the duplicate --
just removing the additional typedef doesn't seem like a good
idea since it would likely break builds on non-Debian systems.
Is there a better/preferred way to handle such things? In the
meantime, Debian bug#415095 has also been filed with a patch that
includes a fix for the problem, but I'd rather not depend on the
Debian release schedules to be able to get uClibc working....
--
Ciao,
al
----------------------------------------------------------------------
Al Stone Alter Ego:
Open Source and Linux R&D Debian Developer
Hewlett-Packard Company http://www.debian.org
E-mail: ahs3 at fc.hp.com ahs3 at debian.org
----------------------------------------------------------------------
More information about the uClibc
mailing list