This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: is _GNU_SOURCE defined by gcc ?
- To: lfarkas at mindmaker dot hu
- Subject: Re: is _GNU_SOURCE defined by gcc ?
- From: Florian Weimer <Florian dot Weimer at RUS dot Uni-Stuttgart dot DE>
- Date: 24 Nov 2000 15:48:50 +0100
- Cc: gcc at gcc dot gnu dot org, Redhat Devel <redhat-devel-list at redhat dot com>
- References: <3A1E7C8D.7ED36553@mindmaker.hu>
Levente Farkas <lfarkas@mindmaker.hu> writes:
> the followning simple code can prodcuce non-gnu both on red hat 6.2 and
> 7.0 (with the default gcc) at the same time with the latest cvs gcc
> it's print gnu. what is the difference and how can I force gcc to
> define _GNU_SOURCE (-D_GNU_SOURCE seems to be a solution but I don't
> know whether is there any reason that it's not defined by default or not)?
When you use the GNU C Library, you have to define _GNU_SOURCE if you
want to use certain extensions. These extensions are not available on
some non-GNU systems; the idea is that this prevents you from
accidently using them and making your software less portable.
It's even documented in the GNU C Library manual ("Feature Test
Macros"):
| - Macro: _GNU_SOURCE
| If you define this macro, everything is included: ISO C89,
| ISO C99, POSIX.1, POSIX.2, BSD, SVID, X/Open, LFS, and GNU
| extensions. In the cases where POSIX.1 conflicts with BSD, the
| POSIX definitions take precedence.
BTW: This hasn't much to do with GCC (the compiler itself), so
gcc@gcc.gnu.org is not appropriate for this kind of discussion.
--
Florian Weimer Florian.Weimer@RUS.Uni-Stuttgart.DE
University of Stuttgart http://cert.uni-stuttgart.de/
RUS-CERT +49-711-685-5973/fax +49-711-685-5898