This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
__STDC__ == 0 in System Headers on Solaris?
- From: "Jeffery Cavallaro" <jeffery at cavcom dot com>
- To: <gcc-help at gcc dot gnu dot org>
- Date: Sat, 22 Feb 2003 20:54:55 -0800
- Subject: __STDC__ == 0 in System Headers on Solaris?
- Reply-to: <jeffery at cavcom dot com>
Hi, all - need a little help with gcc 3.2.2, __STDC__, and the solaris
2.9 system header files.
If __STDC__ != 0, then <sys/types.h> will define longlong to be a
composite type, which messes up all of the large file stuff. In past
GCC versions, I have been successful is redefining __STDC__ to 0 so that
everything works correctly. OK, I know, very kludgy, but I didn't see
any other choice at the time. Now, GCC is VERY stringent about __STDC__
redefinition, and I don't see an out without putting up with reams of
__STDC__ redefined warning messages.
When I dealt with this is past versions, I noticed a note in the GCC
documentation stating that on systems with a convention of __STDC__=0,
GCC would use a 0 value when scanning system header files. Indeed, this
feature seems to be enabled in the Solaris 2.x support
(STDC_0_IN_SYSTEM_HEADERS, or some such define). Yet, this doesn't seem
to be having any effect - __STDC__ is still 1.
Am I completely misunderstanding this feature? Help please! I would
like to do this correctly and have longlong be defined as the correct
atomic type (long long).
Thanks!
Jeff