Bug#434040: Debian bug #434040 (Conflicting declarations for dev_t)
Josselin -
> Is there anything that is possible to help fixing this before the
> release?
My reading of header files shows that libc6-dev in etch, lenny,
and sid does not suffer from the original problem. The files
that include a workaround (ugly, but apparently functional) for
possible namespace pollution are
/usr/include/sys/kd.h
/usr/include/sys/sysctl.h
I don't see mention of this problem in the Debian glibc changelog,
and I don't know how to pull out older copies to see when this
workaround was added. An earlier attempt is part of sarge
(libc6-dev version 2.3.2.ds1-22sarge6).
The simplest approach to this bug is to close it.
Joey mentions apm.h. It turns out this is the _only_ other file
(at least on my sid system) in /usr/include that nests to a
linux kernel header file. It really should have a workaround
like that in glibc.
So this bug could be cloned, the copy assigned to apmd, and marked
"important". I append a patch that is arguably cleaner than the
approach used by glibc, and is somewhat tested (I checked that it
didn't break the build of battery-stats, osdsh, sleepd, or wmbattery,
and it fixes Joey's test case).
My patch depends on a feature (__KERNEL_STRICT_NAMES) of linux/types.h
that is at least as old as sarge (linux-kernel-headers version
2.5.999-test7-bk-17). This macro is defined in glibc features.h,
so it looks like all the preprocessor gyrations in sys/sysctl.h are
not needed, because that file includes <features.h>.
- Larry
--- apm.h.orig 2003-01-16 13:50:36.000000000 -0800
+++ apm.h 2008-10-13 13:43:47.000000000 -0700
@@ -20,6 +20,13 @@
* $Id: apm.h,v 1.7 1999/07/05 22:31:11 apenwarr Exp $
*
*/
+#ifndef _APM_H
+#define _APM_H 1
+
+#ifndef __KERNEL_STRICT_NAMES
+#define __KERNEL_STRICT_NAMES
+#endif
+
#include <linux/apm_bios.h>
#include <sys/types.h>
@@ -93,3 +100,5 @@
#else
#define apm_reject(fd) (-EINVAL)
#endif
+
+#endif
Reply to: