Date: Sun, 3 Jul 2011 10:35:31 -0400 From: Alexander Kabaev <kabaev@gmail.com> To: Garrett Cooper <yanegomi@gmail.com> Cc: freebsd-hackers@freebsd.org, Robert, Ed Maste <emaste@freebsd.org>, Millan <rmh@debian.org> Subject: Re: [PATCH] __FreeBSD_kernel__ Message-ID: <20110703103531.4a553271@kan.dnsalias.net> In-Reply-To: <CAGH67wQAv4Tf8HjccN2GZzgD2u1ZrORABtGehxXjeg109%2BRNWQ@mail.gmail.com> References: <CAOfDtXPUxQO1zbnxh8sh%2By7g=d8QaH2svYtEQJ06L4d%2BQKG8VA@mail.gmail.com> <20110702193724.5c55a6c9@kan.dnsalias.net> <20110703020827.GA5763@sandvine.com> <CAGH67wQAv4Tf8HjccN2GZzgD2u1ZrORABtGehxXjeg109%2BRNWQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--Sig_/iuc1qVM5aE7B20Se6WzXTHr Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable On Sat, 2 Jul 2011 20:05:12 -0700 Garrett Cooper <yanegomi@gmail.com> wrote: > On Sat, Jul 2, 2011 at 7:08 PM, Ed Maste <emaste@freebsd.org> wrote: > > On Sat, Jul 02, 2011 at 07:37:24PM -0400, Alexander Kabaev wrote: > > > >> On Sat, 2 Jul 2011 17:41:03 +0200 > >> Robert Millan <rmh@debian.org> wrote: > >> > >> > My request is that FreeBSD also defines __FreeBSD_kernel__. =9AIf > >> > this happens, life would be made a bit easier on both sides, as > >> > it'd be more natural for porters of either system to support > >> > both using a single macro [1]. > > > > I think this is a good idea, especially if it means that a single > > change can make it into upstream projects to support both FreeBSD > > and Debian kFreeBSD. > > > >> I do not think this belongs in GCC at all. You should already have > >> a defined symbol to identify your OS and that should be used in > >> cases where it matters. > > > > I suspect the proposed patch put it in GCC based on the fact that we > > already have __FreeBSD__ in contrib/gcc/config/freebsd-spec.h: > > =9A =9A =9A =9Abuiltin_define_with_int_value ("__FreeBSD__", FBSD_MAJOR= ); > > =9A =9A\ > > > >> Alternatively, you should provide the symbol in > >> similar way in which we provide __FreeBSD_version, through > >> well-known header like sys/param.h and not pollute GCC. > > > > I suspect this is probably a reasonable alternative, but may mean > > software will have to pick up an additional #include. > > > > Out of curiosity, what is the canonical way for software to > > identify a Linux kernel -- __linux__ or some variant? =9AWhere is it > > defined? >=20 > linux is most often reliably defined value based on my personal > experience and it's defined in gcc [look for > `builtin_define.*("linux");' (note: this is a regexp..)]. Example: >=20 > $ echo '' | gcc -E -xc -dM -c - 2>&1 | grep linux > #define __linux 1 > #define __linux__ 1 > #define __gnu_linux__ 1 > #define linux 1 >=20 > HTH, > -Garrett __linux__ is exactly what __FreeBSD__ is and dies not identify kernel but rather Linux as whole OS, whatever that might be these days. There does not appear to be an universal macro that identifies environment as using Linux kernel regardless of the rest of components used (say, to identify Android and Ubuntu or something embedded with ucLibc as running Linux kernel with different userland implementations). --=20 Alexander Kabaev --Sig_/iuc1qVM5aE7B20Se6WzXTHr Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) iD8DBQFOEH43Q6z1jMm+XZYRAl8ZAKDJtBR1I9io5uBJ8Cwb6gu7maPwaQCfcWu+ 3xGLMqKLpOoGKj+9LJqNEHI= =sPWw -----END PGP SIGNATURE----- --Sig_/iuc1qVM5aE7B20Se6WzXTHr--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110703103531.4a553271>