NetBSD-Bugs archive

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

Re: standards/51044: NetBSD cdefs.h defines __func__ incompatibly with C99

The following reply was made to PR standards/51044; it has been noted by GNATS.

From: Robert Elz <kre%munnari.OZ.AU@localhost>
Subject: Re: standards/51044: NetBSD cdefs.h defines __func__ incompatibly with C99
Date: Thu, 11 Aug 2016 02:04:12 +0700

     Date:        Wed, 10 Aug 2016 18:15:01 +0000 (UTC)
     From:        David Holland <>
     Message-ID:  <>
   |   >  The root cause is the OS header files trampling on
   |   >  compiler-reserved namespace.
   |  There is no such thing as compiler-reserved namespace in Standard C.
 I suspect that this might be yet another example of a very common
 problem when dividing up namespaces into groups (partucularly when
 it is just two groups).
 Someone decides that names of class X are reserved for type Y users,
 and not available to type Z users.   Then person A complains about
 person B using a class X name - A claims "I am Y, you are not", to which
 B replies, "I certainly am a Y, you might be too, but I certainly am."
 A says "no you're not", B: "yes I am" ... and we all know how that ends.
 In this case, if you're a compiler implementor, "reserved to the
 implementation" means only compilers get to use it.   If you're
 a system implementor, the implementation includes everything provided
 with the system, including the compiler, but excludes all add ons.
 If you're a provider of packaged add on software, the implementation
 includes all of that, and just excludes what the end users do.
 If you're an end-user administrator, then the implementation is
 everything I buy, and install, including my scripts, and the rest
 is just what the lusers I have to support do ...
 The whole strategy of dividing namespaces that way is doomed, and
 almost always just ends up causing far more problems then if the whole
 thing was just a free for all, and was gradually handled by the users
 sorting out some mechanism that solves the problems.

Home | Main Index | Thread Index | Old Index