Re: GCC Preprocessor directives for GNU/Hurd?
On Thu, Dec 17, 2015 at 10:03 PM, Svante Signell
> On Thu, 2015-12-17 at 21:05 +0900, Roger Shimizu wrote:
>> > For GNU/Hurd the preprocessor directive is __GNU__
>> Thanks for your reply!
>> I guess like Linux and kFreeBSD, __GLIBC__ is also set in Debian Hurd, right?
>> BTW. Please CC me when replying. I'd appreciate that!
> No, __GLIBC__ is not set by default for Hurd, only when <features.h> is
> touch test.h
> gcc -E -dM ./test.h|grep _GNU_
> #define __GNU__ 1
> gcc -E -dM ./test.h|grep _GLIBC_
> cat test.h
> #include <features.h>
> gcc -E -dM ./test.h|grep __GLIBC__
> #define __GLIBC__ 2
Thanks for the detailed way to verify those!
I confirmed for __GLIBC__, it's the same situation under GNU/Linux,
which default is "No", but turn to "Yes" after include <features.h>.
Since basic function like <stdio.h> or <string.h>, etc. also include
<features.h>, it's safe for most common application to treat __GLIBC__
as "Yes" for Linux and Hurd.