Changes imported from coreutils.
authorJim Meyering <jim@meyering.net>
Tue, 4 Jan 2005 20:22:52 +0000 (20:22 +0000)
committerJim Meyering <jim@meyering.net>
Tue, 4 Jan 2005 20:22:52 +0000 (20:22 +0000)
(gl_FUNC_MKSTEMP): Rather than using "conftestXXXXXX"
as the mkstemp template, use a temporary directory and an
8.3-friendly template to avoid trouble on systems like DJGPP.
Remove the temporary directory right away, rather than waiting
for configure's at-exit trap code to do it.
Reported by Juan M. Guerrero via Stepan Kasal.

m4/mkstemp.m4

index 82e1ce5853b643219769b5009cc40773f9332d91..9204fbd1cfb4fed3e15f4046c23670f9d08e20c1 100644 (file)
@@ -1,4 +1,4 @@
-#serial 6
+#serial 8
 
 # On some hosts (e.g., HP-UX 10.20, SunOS 4.1.4, Solaris 2.5.1), mkstemp has a
 # silly limit that it can create no more than 26 files from a given template.
@@ -15,26 +15,29 @@ AC_DEFUN([gl_FUNC_MKSTEMP],
     AC_CACHE_CHECK([for mkstemp limitations],
       gl_cv_func_mkstemp_limitations,
       [
+        mkdir conftest.mkstemp
        AC_TRY_RUN([
-#         include <stdlib.h>
-         int main ()
-         {
-           int i;
-           for (i = 0; i < 70; i++)
-             {
-               char template[] = "conftestXXXXXX";
-               int fd = mkstemp (template);
-               if (fd == -1)
-                 exit (1);
-               close (fd);
-             }
-           exit (0);
-         }
-         ],
-       gl_cv_func_mkstemp_limitations=no,
-       gl_cv_func_mkstemp_limitations=yes,
-       gl_cv_func_mkstemp_limitations=yes
-       )
+#           include <stdlib.h>
+#           include <unistd.h>
+           int main ()
+           {
+             int i;
+             for (i = 0; i < 70; i++)
+               {
+                 char template[] = "conftest.mkstemp/coXXXXXX";
+                 int fd = mkstemp (template);
+                 if (fd == -1)
+                   exit (1);
+                 close (fd);
+               }
+             exit (0);
+           }
+           ],
+         gl_cv_func_mkstemp_limitations=no,
+         gl_cv_func_mkstemp_limitations=yes,
+         gl_cv_func_mkstemp_limitations=yes
+         )
+        rm -rf conftest.mkstemp
       ]
     )
   fi