Attempt to avoid a recursive include of wchar.h on IRIX 6.5.
authorBruno Haible <bruno@clisp.org>
Sat, 17 Jan 2009 13:06:30 +0000 (14:06 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 17 Jan 2009 13:06:30 +0000 (14:06 +0100)
ChangeLog
lib/wchar.in.h

index 3d0769d..0feaefc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2009-01-17  Bruno Haible  <bruno@clisp.org>
 
+       * lib/wchar.in.h: In another particular situation, include only the
+       system's <wchar.h> file.
+       (_GL_ALREADY_INCLUDING_WCHAR_H): New macro.
+       Reported by Albert Chin-A-Young <china@thewrittenword.com>
+       and Thomas Guyot-Sionnest <dermoth@aei.ca>.
+
+2009-01-17  Bruno Haible  <bruno@clisp.org>
+
        Support for stripping executables in --enable-relocatable.
        * build-aux/install-reloc: Expect one more argument, or an environment
        variable RELOC_STRIP_PROG. If set, strip the destination program and
index 77c068b..3c6cd7b 100644 (file)
@@ -30,7 +30,7 @@
 @PRAGMA_SYSTEM_HEADER@
 #endif
 
-#if defined __need_mbstate_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H))
+#if defined __need_mbstate_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
 /* Special invocation convention:
    - Inside uClibc header files.
    - On HP-UX 11.00 we have a sequence of nested includes
      once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h>
      and once directly.  In both situations 'wint_t' is not yet defined,
      therefore we cannot provide the function overrides; instead include only
-     the system's <wchar.h>.  */
+     the system's <wchar.h>.
+   - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and
+     the latter includes <wchar.h>.  But here, we have no way to detect whether
+     <wctype.h> is completely included or is still being included.  */
 
 #@INCLUDE_NEXT@ @NEXT_WCHAR_H@
 
@@ -47,6 +50,8 @@
 
 #ifndef _GL_WCHAR_H
 
+#define _GL_ALREADY_INCLUDING_WCHAR_H
+
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
@@ -62,6 +67,8 @@
 # @INCLUDE_NEXT@ @NEXT_WCHAR_H@
 #endif
 
+#undef _GL_ALREADY_INCLUDING_WCHAR_H
+
 #ifndef _GL_WCHAR_H
 #define _GL_WCHAR_H