diff --git a/sim/arm/armos.c b/sim/arm/armos.c
index a8ef7e4a82d9..9cf238ac8e25 100644
--- a/sim/arm/armos.c
+++ b/sim/arm/armos.c
@@ -31,10 +31,7 @@
 #include <errno.h>
 #include <limits.h>
 #include <string.h>
-
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>		/* For SEEK_SET etc.  */
-#endif
 
 #include "armdefs.h"
 #include "armos.h"
diff --git a/sim/common/callback.c b/sim/common/callback.c
index ff14a111b659..306e95e866da 100644
--- a/sim/common/callback.c
+++ b/sim/common/callback.c
@@ -34,9 +34,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <sys/stat.h>
 #include <sys/types.h>
 
diff --git a/sim/common/dv-pal.c b/sim/common/dv-pal.c
index 56692c1dcb84..25f8c683e29a 100644
--- a/sim/common/dv-pal.c
+++ b/sim/common/dv-pal.c
@@ -24,9 +24,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 
 #include "sim-main.h"
 #include "hw-main.h"
diff --git a/sim/common/dv-sockser.c b/sim/common/dv-sockser.c
index fba2775f2e87..698cab839209 100644
--- a/sim/common/dv-sockser.c
+++ b/sim/common/dv-sockser.c
@@ -29,9 +29,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <signal.h>
 #include <stdlib.h>
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <arpa/inet.h>
 #include <netinet/in.h>
 #include <sys/select.h>
diff --git a/sim/common/nrun.c b/sim/common/nrun.c
index 4c011627bb85..2ebf8a127166 100644
--- a/sim/common/nrun.c
+++ b/sim/common/nrun.c
@@ -21,10 +21,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdlib.h>
 /* For strsignal.  */
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 /* For chdir.  */
 #include <unistd.h>
-#endif
 
 #include "bfd.h"
 #include "environ.h"
diff --git a/sim/common/sim-io.c b/sim/common/sim-io.c
index f126c9622aea..fc0d42faf117 100644
--- a/sim/common/sim-io.c
+++ b/sim/common/sim-io.c
@@ -29,9 +29,7 @@
 #include <stdarg.h>
 #include <stdint.h>
 #include <stdlib.h>
-#if HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 
 #undef open
 
diff --git a/sim/common/sim-memopt.c b/sim/common/sim-memopt.c
index 2d1b96b7889c..2e5016c52ab1 100644
--- a/sim/common/sim-memopt.c
+++ b/sim/common/sim-memopt.c
@@ -26,9 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #endif
 #include <stdlib.h>
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #ifdef HAVE_SYS_MMAN_H
 #include <sys/mman.h>
 #endif
diff --git a/sim/common/syscall.c b/sim/common/syscall.c
index f65f616a2316..96033db84c3b 100644
--- a/sim/common/syscall.c
+++ b/sim/common/syscall.c
@@ -33,9 +33,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <sys/stat.h>
 #include <sys/types.h>
 
diff --git a/sim/cr16/simops.c b/sim/cr16/simops.c
index e652b8153f80..73420a7e0c6c 100644
--- a/sim/cr16/simops.c
+++ b/sim/cr16/simops.c
@@ -24,9 +24,7 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <string.h>
 #include <time.h>
 #include <sys/time.h>
diff --git a/sim/cris/dv-rv.c b/sim/cris/dv-rv.c
index 6caa4dd34438..9142b88f7d7f 100644
--- a/sim/cris/dv-rv.c
+++ b/sim/cris/dv-rv.c
@@ -29,9 +29,7 @@
 #include <ctype.h>
 #include <errno.h>
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
diff --git a/sim/cris/rvdummy.c b/sim/cris/rvdummy.c
index a263ee3c0ffd..91a7ddc8a8d5 100644
--- a/sim/cris/rvdummy.c
+++ b/sim/cris/rvdummy.c
@@ -36,10 +36,7 @@ main (int argc, char *argv[])
 #include "libiberty.h"
 
 #include <stdio.h>
-
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 #include <string.h>
 #ifdef HAVE_SYS_TYPES_H
diff --git a/sim/cris/traps.c b/sim/cris/traps.c
index afcb3480840c..f5f169f1c81f 100644
--- a/sim/cris/traps.c
+++ b/sim/cris/traps.c
@@ -32,9 +32,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdlib.h>
 #include <stdarg.h>
 #include <errno.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
diff --git a/sim/d10v/simops.c b/sim/d10v/simops.c
index 96ed29f6abe1..bc7806cc278a 100644
--- a/sim/d10v/simops.c
+++ b/sim/d10v/simops.c
@@ -5,9 +5,7 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <string.h>
 
 #include "bfd.h"
diff --git a/sim/m4/sim_ac_platform.m4 b/sim/m4/sim_ac_platform.m4
index 6356a80e16ff..665c1bd7866c 100644
--- a/sim/m4/sim_ac_platform.m4
+++ b/sim/m4/sim_ac_platform.m4
@@ -18,12 +18,12 @@ AC_DEFUN([SIM_AC_PLATFORM],
 [dnl
 dnl Check for common headers.
 dnl NB: You can assume C11 headers exist.
+dnl NB: We use gnulib from ../gnulib/, so we don't probe headers it provides.
 AC_CHECK_HEADERS_ONCE(m4_flatten([
   dlfcn.h
   fcntl.h
   fpu_control.h
   termios.h
-  unistd.h
   utime.h
   linux/if_tun.h
   linux/mii.h
@@ -46,6 +46,7 @@ AC_CHECK_HEADERS_ONCE(m4_flatten([
 ]))
 AC_HEADER_DIRENT
 
+dnl NB: We use gnulib from ../gnulib/, so we don't probe functions it provides.
 AC_CHECK_FUNCS_ONCE(m4_flatten([
   __setfpucw
   access
diff --git a/sim/m68hc11/emulos.c b/sim/m68hc11/emulos.c
index 50d275346347..fcf9cc1b5e57 100644
--- a/sim/m68hc11/emulos.c
+++ b/sim/m68hc11/emulos.c
@@ -21,9 +21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "defs.h"
 
 #include "sim-main.h"
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 
 #include "m68hc11-sim.h"
 
diff --git a/sim/mn10300/op_utils.c b/sim/mn10300/op_utils.c
index b29b803d8e7f..7e035f432590 100644
--- a/sim/mn10300/op_utils.c
+++ b/sim/mn10300/op_utils.c
@@ -3,9 +3,7 @@
 
 #include <errno.h>
 #include <time.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/time.h>
diff --git a/sim/ppc/emul_bugapi.c b/sim/ppc/emul_bugapi.c
index f4eed443d8bd..067e40691e2f 100644
--- a/sim/ppc/emul_bugapi.c
+++ b/sim/ppc/emul_bugapi.c
@@ -27,9 +27,7 @@
 #include "emul_generic.h"
 #include "emul_bugapi.h"
 
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 #include <string.h>
 
diff --git a/sim/ppc/emul_chirp.c b/sim/ppc/emul_chirp.c
index 116f3732ac74..c064a28a7c62 100644
--- a/sim/ppc/emul_chirp.c
+++ b/sim/ppc/emul_chirp.c
@@ -28,9 +28,7 @@
 #include "emul_chirp.h"
 
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 
 #ifndef STATIC_INLINE_EMUL_CHIRP
 #define STATIC_INLINE_EMUL_CHIRP STATIC_INLINE
diff --git a/sim/ppc/emul_netbsd.c b/sim/ppc/emul_netbsd.c
index a8bfd27610e2..51f8e98ae32b 100644
--- a/sim/ppc/emul_netbsd.c
+++ b/sim/ppc/emul_netbsd.c
@@ -72,10 +72,8 @@ int getrusage();
 # endif
 #endif
 
-#ifdef HAVE_UNISTD_H
 #undef MAXPATHLEN		/* sys/param.h might define this also */
 #include <unistd.h>
-#endif
 
 #include <stdlib.h>
 
diff --git a/sim/ppc/emul_unix.c b/sim/ppc/emul_unix.c
index 1d8b7814ffc6..2872d236bf36 100644
--- a/sim/ppc/emul_unix.c
+++ b/sim/ppc/emul_unix.c
@@ -115,10 +115,8 @@ int getrusage();
 # endif
 #endif
 
-#ifdef HAVE_UNISTD_H
 #undef MAXPATHLEN		/* sys/param.h might define this also */
 #include <unistd.h>
-#endif
 
 #include <stdlib.h>
 #include <time.h>
diff --git a/sim/ppc/hw_com.c b/sim/ppc/hw_com.c
index 4ffd73203f49..768d1ca6a3c5 100644
--- a/sim/ppc/hw_com.c
+++ b/sim/ppc/hw_com.c
@@ -28,9 +28,7 @@
 #include "device_table.h"
 
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 
 /* DEVICE
diff --git a/sim/ppc/hw_disk.c b/sim/ppc/hw_disk.c
index 3a825202784d..54a11f628273 100644
--- a/sim/ppc/hw_disk.c
+++ b/sim/ppc/hw_disk.c
@@ -26,10 +26,7 @@
 #include "pk.h"
 
 #include <stdio.h>
-
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 
 #ifndef	SEEK_SET
 #define	SEEK_SET 0
diff --git a/sim/ppc/hw_pal.c b/sim/ppc/hw_pal.c
index 8b0770993699..f8585084b371 100644
--- a/sim/ppc/hw_pal.c
+++ b/sim/ppc/hw_pal.c
@@ -30,9 +30,7 @@
 #include "cpu.h"
 
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 
 
diff --git a/sim/ppc/main.c b/sim/ppc/main.c
index 83b629ec14aa..aa1c85e0af91 100644
--- a/sim/ppc/main.c
+++ b/sim/ppc/main.c
@@ -36,9 +36,7 @@
 #include "sim/sim.h"
 
 #include <stdlib.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <string.h>
 #include <errno.h>
 
diff --git a/sim/ppc/mon.c b/sim/ppc/mon.c
index 4e29ec998798..8ab42af84589 100644
--- a/sim/ppc/mon.c
+++ b/sim/ppc/mon.c
@@ -26,9 +26,7 @@
 #include <stdio.h>
 
 #include <string.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
diff --git a/sim/ppc/table.c b/sim/ppc/table.c
index 6399bdaddcb1..da1696759587 100644
--- a/sim/ppc/table.c
+++ b/sim/ppc/table.c
@@ -29,9 +29,7 @@
 #include "lf.h"
 #include "table.h"
 
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 
 typedef struct _open_table open_table;
diff --git a/sim/rl78/main.c b/sim/rl78/main.c
index 7c250f7172c1..1eafa3392eaf 100644
--- a/sim/rl78/main.c
+++ b/sim/rl78/main.c
@@ -25,9 +25,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <assert.h>
 #include <setjmp.h>
 #include <signal.h>
diff --git a/sim/rx/main.c b/sim/rx/main.c
index e404446dd700..13d0c473e743 100644
--- a/sim/rx/main.c
+++ b/sim/rx/main.c
@@ -24,9 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <assert.h>
 #include <setjmp.h>
 #include <signal.h>
diff --git a/sim/sh/interp.c b/sim/sh/interp.c
index 5a90cd2cf74c..5e0e8c47569f 100644
--- a/sim/sh/interp.c
+++ b/sim/sh/interp.c
@@ -25,9 +25,7 @@
 #include <stdio.h>
 #include <errno.h>
 #include <signal.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #ifdef HAVE_MMAP
 #include <sys/mman.h>
 # ifndef MAP_FAILED
diff --git a/sim/v850/simops.c b/sim/v850/simops.c
index 69db8aaaa53d..326745efcb26 100644
--- a/sim/v850/simops.c
+++ b/sim/v850/simops.c
@@ -12,9 +12,7 @@
 #include <utime.h>
 #endif
 #include <time.h>
-#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-#endif
 #include <stdlib.h>
 #include <string.h>
 
