[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: