[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: <stdint.h> on IRIX-5.3 & SGI-cc
From: |
Mark D. Baushke |
Subject: |
Re: <stdint.h> on IRIX-5.3 & SGI-cc |
Date: |
Fri, 23 Jun 2006 00:47:07 -0700 |
Hi Martin,
The CVS project has forked from the GNULIB project slightly for the
stdint stuff as I have not seen any commit to gnulib to support the SGI
compilation problems we had observed. I have hopes that they will either
adopt our changes or equivalent changes so that we can once more use
their version directly.
Note: The BSDI BSD/OS 4.2 change has not yet been fully tested on a
BSD/OS 4.2 system to see if it fixes the problem. However, I suspect it
should work fine.
The lib/stdint.h which is generated on an IRIX 5.3 system should have
all of the stuff you need without any change needed to md5.c or md5.h.
If you want to checkout a copy of the vanilla CVS sources and do a quick
configure and build to let us know of any warnings or errors you see,
that could be very helpful.
We are nearing a public release of CVS 1.12.14, so anyone with oddball
versions of hardware and operating systems that have problems building
the current sources are urged to let us know what you have and if
possible what needs to be done to fix things.
Thanks,
-- Mark
------- GNULIB patched sources -------
ChangeLog:
* stdint_.h (__bsdos__): BSD/OS 4.2 needs to include
<sys/types.h> to avoid a generated <stdint.h> that redifines
typedefs already found in <sys/types.h>.
(__sgi): For IRIX 5.3, the <inttypes.h> in c89 mode defines
all of the <stdint.h> types needed while the <stdint.h> for
uses #error in c89 mode. In c99 mode, <inttypes.h> includes
<stdint.h> and defines all of the needed types.
Index: lib/stdint_.h
===================================================================
RCS file: /sources/gnulib/gnulib/lib/stdint_.h,v
retrieving revision 1.17
diff -u -p -r1.17 stdint_.h
--- lib/stdint_.h 17 Jun 2006 20:02:16 -0000 1.17
+++ lib/stdint_.h 23 Jun 2006 07:34:51 -0000
@@ -33,6 +33,11 @@
#if defined(__FreeBSD__) && (__FreeBSD__ >= 3) && (__FreeBSD__ <= 4)
# include <sys/inttypes.h>
#endif
+#if defined(__bsdos__)
+ /* In BSD/OS 4.2, <sys/types.h> includes some of the needed typedefs
+ that would otherwise conflict with types in a generated <stdint.h>. */
+# include <sys/types.h>
+#endif
#if defined(__OpenBSD__)
/* In OpenBSD 3.8, <sys/types.h> includes <machine/types.h>, which defines
int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
@@ -55,7 +60,7 @@
But note that <sys/int_types.h> contains only the type definitions! */
# include <sys/inttypes.h>
#endif
-#if (defined(__hpux) || defined(_AIX)) && @HAVE_INTTYPES_H@
+#if (defined(__hpux) || defined(_AIX) || defined(__sgi)) && @HAVE_INTTYPES_H@
/* HP-UX 10 <inttypes.h> has nearly everything, except UINT_LEAST8_MAX,
UINT_FAST8_MAX, PTRDIFF_MIN, PTRDIFF_MAX. */
/* AIX 4 <inttypes.h> has nearly everything, except INTPTR_MIN, INTPTR_MAX,
@@ -64,7 +69,9 @@
#endif
#if @HAVE_STDINT_H@
/* Other systems may have an incomplete <stdint.h>. */
-# include @FULL_PATH_STDINT_H@
+# if !defined(__sgi) || !@HAVE_INTTYPES_H@
+# include @FULL_PATH_STDINT_H@
+# endif
#endif
/* 7.18.1.1. Exact-width integer types */
Index: m4/stdint.m4
===================================================================
RCS file: /sources/gnulib/gnulib/m4/stdint.m4,v
retrieving revision 1.7
diff -u -p -r1.7 stdint.m4
--- m4/stdint.m4 19 Jun 2006 11:27:00 -0000 1.7
+++ m4/stdint.m4 23 Jun 2006 07:34:52 -0000
@@ -90,7 +90,7 @@ typedef int array [2 * (POW63 != 0 && PO
#if defined(__FreeBSD__) && (__FreeBSD__ >= 3) && (__FreeBSD__ <= 4)
# include <sys/inttypes.h>
#endif
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) || defined(__bsdos__)
# include <sys/types.h>
# if HAVE_INTTYPES_H
# include FULL_PATH_INTTYPES_H
@@ -102,11 +102,13 @@ typedef int array [2 * (POW63 != 0 && PO
#if defined(__sun) && HAVE_SYS_INTTYPES_H
# include <sys/inttypes.h>
#endif
-#if (defined(__hpux) || defined(_AIX)) && HAVE_INTTYPES_H
+#if (defined(__hpux) || defined(_AIX) || defined(__sgi)) && HAVE_INTTYPES_H
# include FULL_PATH_INTTYPES_H
#endif
#if HAVE_STDINT_H
-# include FULL_PATH_STDINT_H
+# if !defined(__sgi) || !HAVE_INTTYPES_H
+# include FULL_PATH_STDINT_H
+# endif
#endif
'
gl_STDINT_CHECK_TYPES(
------- end of GNULIB patch -------