XEmacs 21.4.2 "Developer-Friendly Unix APIs".
[chise/xemacs-chise.git.1] / src / s / aix4.h
index bb3a15d..56bd1a1 100644 (file)
 /* 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 option `-O3' is too aggressive.
+   We recommend instead the combination `-O3 -qstrict', which seems safe.
+
+   cc -O3 miscompiles at least two functions.  From IBM's docs:
+
+   IBM> -qstrict turns off the following optimizations:
+
+   IBM> Performing code motion and scheduling on computations such as loads
+   IBM> and floating-point computations that may trigger an exception.
+
+   Nevertheless, we try to work with these compiler options. */
+#pragma option_override (bytecount_to_charcount, "opt(strict,yes)")
+#pragma option_override (Fexpand_file_name, "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.