+2006-03-29 Mark D. Baushke <mdb@gnu.org>
+ Bruno Haible <bruno@clisp.org>
+
+ * stdint_.h: On OpenBSD, don't redefine types already included in
+ <sys/types.h> and <inttypes.h>.
+
2006-03-24 Eric Blake <ebb9@byu.net>
* time_r.c (copy_string_result): Remove, as it is no longer used.
#if defined(__FreeBSD__)
# include <sys/inttypes.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__.
+ <inttypes.h> includes <machine/types.h> and also defines intptr_t and
+ uintptr_t. */
+# include <sys/types.h>
+# if HAVE_INTTYPES_H
+# include <inttypes.h>
+# endif
+#endif
#if defined(__linux__) && HAVE_SYS_BITYPES_H
/* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is
/* 7.18.1.1. Exact-width integer types */
-#if !defined(__FreeBSD__)
+#if !(defined(__FreeBSD__) || defined(__OpenBSD__))
#ifdef _STDINT_H_NEED_SIGNED_INT_TYPES
typedef signed char int8_t;
#define _STDINT_H_HAVE_INT64
#endif
-#endif /* !FreeBSD */
+#endif /* !(FreeBSD || OpenBSD) */
/* 7.18.1.2. Minimum-width integer types */
/* 7.18.1.4. Integer types capable of holding object pointers */
-#if !defined(__FreeBSD__)
+#if !(defined(__FreeBSD__) || (defined(__OpenBSD__) && HAVE_INTTYPES_H))
/* On some platforms (like IRIX6 MIPS with -n32) sizeof(void*) < sizeof(long),
but this doesn't matter here. */
typedef long intptr_t;
typedef unsigned long uintptr_t;
-#endif /* !FreeBSD */
+#endif /* !(FreeBSD || (OpenBSD && HAVE_INTTYPES_H)) */
/* 7.18.1.5. Greatest-width integer types */