Bug#439859: /usr/include/sys/sysmacros.h defines "major", "minor" and "makedev" as macros
Package: libc6-dev
Version: 2.6.1-1+b1
Severity: normal
Hi,
these names are defined as macros, making software that uses one of them
as an identifier miscompile (if the definition is seen everywhere, the
list of exported symbols changes in an incompatible way) or break (if
the definition is not seen everywhere, for example because only the
implementation of a function needs them).
It is specifically a problem with orbit2cpp; CORBA::Exception has member
functions "major" and "minor" describing the exception; with these
definitions in effect, compilation of functions accessing these fails
with
error: `class CORBA::SystemException' has no member named
`gnu_dev_minor'
This can be worked around to some extent by undefining the macros,
however that breaks if some implementation of an interface needs them.
Simon
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.22-1-686 (SMP w/1 CPU core)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libc6-dev depends on:
ii libc6 2.6.1-1+b1 GNU C Library: Shared libraries
ii linux-libc-dev 2.6.22-3 Linux Kernel Headers for developme
Versions of packages libc6-dev recommends:
ii gcc [c-compiler] 4:4.1.2-7 The GNU C compiler
ii gcc-4.1 [c-compiler] 4.1.2-15 The GNU C compiler
ii gcc-4.2 [c-compiler] 4.2.1-4 The GNU C compiler
-- no debconf information
Reply to: