/* AIX is happier when bzero and strcasecmp are declared */
#include "strings.h"
-/* AIX 4.2's sys/mman.h doesn't seem to define MAP_FAILED,
- although Unix98 claims it must. */
-#ifdef HAVE_MMAP
-#include <sys/mman.h>
-# ifndef MAP_FAILED
-# define MAP_FAILED ((void *) -1)
-# endif
-#endif
-
/* Forward declarations for xlc warning suppressions */
struct ether_addr;
struct sockaddr_dl;
+
+#ifdef __xlC__ /* "eXceLlent C compiler" ?! */
+#if __xlC__ >= 1200
+/* IBM's C compiler miscompiles bytecount_to_charcount at high levels
+ of optimization. From IBM's docs:
+
+ -qstrict turns off the following optimizations:
+
+ Performing code motion and scheduling on computations such as loads
+ and floating-point computations that may trigger an exception. */
+#pragma option_override (bytecount_to_charcount, "opt(strict,yes)")
+#endif /* recent IBM C compiler */
+#endif /* IBM's C compiler */
+
#endif /* C code */
/* getaddrinfo is broken in AIX 4.3 as per IY04165.