Date: Mon, 21 Nov 2011 13:45:29 +1100 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Kostik Belousov <kostikbel@gmail.com> Cc: freebsd-arch@freebsd.org, Adrian Chadd <adrian@freebsd.org>, freebsd-current@freebsd.org, Robert Millan <rmh@freebsd.org> Subject: Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers Message-ID: <20111121133954.A1108@besplex.bde.org> In-Reply-To: <20111120174807.GY50300@deviant.kiev.zoral.com.ua> References: <CAOfDtXPX1Rv9T7%2B1jYQbkM14tRY7mqgCzPcUqvHxFaRObbwvEg@mail.gmail.com> <201111170959.56767.jhb@freebsd.org> <CAOfDtXNy8r5ww5xSwhH-4w7daWdzB0KsVbO75JAOT=-Wzi%2BdHw@mail.gmail.com> <201111171632.34979.jhb@freebsd.org> <CAOfDtXMFk%2BC_eUsb6190UHHM0cgu3jf1M_M9oq4ibuYuke4pYQ@mail.gmail.com> <CAOfDtXP6ShN3DezN0u4PUVt9ft__2a%2BYwo3in9w01eQnfAQ7sQ@mail.gmail.com> <20111119175620.GV50300@deviant.kiev.zoral.com.ua> <20111120114042.GA1256@thorin> <20111120174807.GY50300@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 20 Nov 2011, Kostik Belousov wrote: > On Sun, Nov 20, 2011 at 12:40:42PM +0100, Robert Millan wrote: >> On Sat, Nov 19, 2011 at 07:56:20PM +0200, Kostik Belousov wrote: >>> I fully agree with an idea that compiler is not an authorative source >>> of the knowledge of the FreeBSD version. Even more, I argue that we shall >>> not rely on compiler for this at all. Ideally, we should be able to >>> build FreeBSD using the stock compilers without local modifications. >>> Thus relying on the symbols defined by compiler, and not the source >>> is the thing to avoid and consistently remove. >>> >>> We must do this to be able to use third-party tooldchain for FreeBSD builds. >>> >>> That said, why not define __FreeBSD_kernel as equal to __FreeBSD_version ? >>> And then make more strong wording about other systems that use the macro, >>> e.g. remove 'may' from the kFreeBSD example. >>> Also, please remove the smile from comment. >> >> Ok. New patch attached. > > And the last, question, why not do > #ifndef __FreeBSD_kernel__ > #define __FreeBSD_kernel__ __FreeBSD_version > #endif > ? > > #undef is too big tools tool apply there, IMO. #ifndef is too big to apply here, IMO :-). __FreeBSD_kernel__ is in the implementation namespace, so any previous definition of it is a bug. The #ifndef breaks the warning for this bug. And why not use FreeBSD style? In KNF, the fields are separated by tabs, not spaces. In FreeBSD style, trailing underscores are not used for names in the implementation namespace, since they have no effect on namespaces. The name __FreeBSD_version is an example of this. Does existing practice require using the name with the trailing underscores? Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111121133954.A1108>