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