Don't use fdatasync on OS X.
authorChris Hanson <org/chris-hanson/cph>
Sun, 11 Mar 2012 05:09:34 +0000 (21:09 -0800)
committerChris Hanson <org/chris-hanson/cph>
Sun, 11 Mar 2012 05:09:34 +0000 (21:09 -0800)
src/microcode/ux.h

index fe61928e5d41770e7999bd69945001a8f19e8630..6cb2bb212eb59f21641a2302edb7dfe4010a155f 100644 (file)
@@ -44,7 +44,7 @@ USA.
 #endif
 
 #ifdef __APPLE__
-#  define SYSTEM_VARIANT "MacOSX"
+#  define SYSTEM_VARIANT "OS X"
 #endif
 
 #ifdef __bsdi__                        /* works on bsdi 3.0 */
@@ -781,11 +781,16 @@ extern int UX_terminal_set_state (int, Ttty_state *);
 #  define EMULATE_TCSETPGRP
 #endif
 
-/* In Darwin, setsid doesn't work in vforked processes,
-   so force the use of fork instead. */
 #ifdef __APPLE__
+   /* In Darwin, setsid doesn't work in vforked processes, so force
+      the use of fork instead. */
 #  undef UX_vfork
 #  define UX_vfork fork
+   /* Also, although OS X binds the symbol fdatasync in the C library,
+      there's no header file or man page, and the system call appears
+      to have a different argument structure.  */
+#  undef HAVE_FDATASYNC
+#  undef UX_fdatasync
 #endif
 \f
 #ifdef HAVE_SIGACTION