diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 4c9bc856cc4d3176cf0fd92048ac89de43f6502c..2dcea7d94bb96a1531ba868a931b2772d3b8d24e 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,10 @@
+2014-03-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+	* configure.ac: Check for presence of fcntl.
+	* configure: Regenerate.
+	* config.h.in: Regenerate.
+	* io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
+
 2014-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu>
 
 	PR libfortran/48600
diff --git a/libgfortran/config.h.in b/libgfortran/config.h.in
index 74cf35c1e403533c8571828a0d9ba02004ed19a4..8298f8d7812939fbdf84c8a68b67a8ff13b1a79b 100644
--- a/libgfortran/config.h.in
+++ b/libgfortran/config.h.in
@@ -360,6 +360,9 @@
 /* Define to 1 if you have the `fabsl' function. */
 #undef HAVE_FABSL
 
+/* Define to 1 if you have the `fcntl' function. */
+#undef HAVE_FCNTL
+
 /* libm includes feenableexcept */
 #undef HAVE_FEENABLEEXCEPT
 
diff --git a/libgfortran/configure b/libgfortran/configure
index bfb2408ffb827a90be211f4712ea7d550465c3ef..23f57c7af379ff53d2b3e2c073f4bf60bc180f5a 100755
--- a/libgfortran/configure
+++ b/libgfortran/configure
@@ -2572,6 +2572,7 @@ as_fn_append ac_func_list " execve"
 as_fn_append ac_func_list " pipe"
 as_fn_append ac_func_list " dup2"
 as_fn_append ac_func_list " close"
+as_fn_append ac_func_list " fcntl"
 as_fn_append ac_func_list " strcasestr"
 as_fn_append ac_func_list " getrlimit"
 as_fn_append ac_func_list " gettimeofday"
@@ -12342,7 +12343,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12345 "configure"
+#line 12346 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12448,7 +12449,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12451 "configure"
+#line 12452 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16599,6 +16600,8 @@ done
 
 
 
+
+
 
 
 
diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
index 6acc0f2942967b24a9399795642676b8392dca47..de2d65e762d38e2bcd8923147c56d196a4df870f 100644
--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
@@ -282,7 +282,7 @@ if test "x${with_newlib}" = "xyes"; then
 else
    AC_CHECK_FUNCS_ONCE(getrusage times mkstemp strtof strtold snprintf \
    ftruncate chsize chdir getlogin gethostname kill link symlink sleep ttyname \
-   alarm access fork execl wait setmode execve pipe dup2 close \
+   alarm access fork execl wait setmode execve pipe dup2 close fcntl \
    strcasestr getrlimit gettimeofday stat fstat lstat getpwuid vsnprintf dup \
    getcwd localtime_r gmtime_r getpwuid_r ttyname_r clock_gettime \
    readlink getgid getpid getppid getuid geteuid umask getegid \
diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
index 9f78b62257d855610a643a2fb147ef6b65c2932d..34c2d0cad163f8ef30c93ebf1b62d09e06cbb208 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -1077,7 +1077,7 @@ static void __attribute__ ((unused))
 set_close_on_exec (int fd __attribute__ ((unused)))
 {
   /* Mingw does not define F_SETFD.  */
-#if defined(F_SETFD) && defined(FD_CLOEXEC)
+#if defined(HAVE_FCNTL) && defined(F_SETFD) && defined(FD_CLOEXEC)
   if (fd >= 0)
     fcntl(fd, F_SETFD, FD_CLOEXEC);
 #endif