Commit 41724e6a by Aaron W. LaFramboise Committed by Paul Brook

config.h.in: Regenerate.

2004-10-30  Aaron W. LaFramboise <aaronavay62@aaronwl.com>

	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (AC_CHECK_FUNCS): Add mkstemp.
	* io/unix.c (S_IRGRP): Define if undefined.
	(S_IWGRP): Same.
	(S_IROTH): Same.
	(S_IWOTH): Same.
	(tempfile): Use mktemp if mkstemp missing, fix typos.

From-SVN: r89893
parent 47289a4e
2004-10-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 2004-10-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac (AC_CHECK_FUNCS): Add mkstemp.
* io/unix.c (S_IRGRP): Define if undefined.
(S_IWGRP): Same.
(S_IROTH): Same.
(S_IWOTH): Same.
(tempfile): Use mktemp if mkstemp missing, fix typos.
2004-10-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
* intrinsics/system.c ("libgfortran.h"): Move after system headers. * intrinsics/system.c ("libgfortran.h"): Move after system headers.
2004-10-30 Canqun Yang <canqun@nudt.edu.cn> 2004-10-30 Canqun Yang <canqun@nudt.edu.cn>
......
...@@ -105,6 +105,9 @@ ...@@ -105,6 +105,9 @@
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H #undef HAVE_MEMORY_H
/* Define to 1 if you have the `mkstemp' function. */
#undef HAVE_MKSTEMP
/* Define to 1 if you have a working `mmap' system call. */ /* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP #undef HAVE_MMAP
...@@ -115,7 +118,7 @@ ...@@ -115,7 +118,7 @@
#undef HAVE_NEXTAFTERF #undef HAVE_NEXTAFTERF
/* libm includes powf */ /* libm includes powf */
# undef HAVE_POWF #undef HAVE_POWF
/* libm includes round */ /* libm includes round */
#undef HAVE_ROUND #undef HAVE_ROUND
......
...@@ -6753,7 +6753,8 @@ fi ...@@ -6753,7 +6753,8 @@ fi
# Check for library functions. # Check for library functions.
for ac_func in getrusage times
for ac_func in getrusage times mkstemp
do do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_func" >&5 echo "$as_me:$LINENO: checking for $ac_func" >&5
......
...@@ -159,7 +159,7 @@ AC_CHECK_HEADER([complex.h],[AC_DEFINE([HAVE_COMPLEX_H], [1], [complex.h exists] ...@@ -159,7 +159,7 @@ AC_CHECK_HEADER([complex.h],[AC_DEFINE([HAVE_COMPLEX_H], [1], [complex.h exists]
AC_CHECK_LIB([m],[csin],[need_math="no"],[need_math="yes"]) AC_CHECK_LIB([m],[csin],[need_math="no"],[need_math="yes"])
# Check for library functions. # Check for library functions.
AC_CHECK_FUNCS(getrusage times) AC_CHECK_FUNCS(getrusage times mkstemp)
# Check libc for getgid, getpid, getuid # Check libc for getgid, getpid, getuid
AC_CHECK_LIB([c],[getgid],[AC_DEFINE([HAVE_GETGID],[1],[libc includes getgid])]) AC_CHECK_LIB([c],[getgid],[AC_DEFINE([HAVE_GETGID],[1],[libc includes getgid])])
......
...@@ -54,6 +54,24 @@ Boston, MA 02111-1307, USA. */ ...@@ -54,6 +54,24 @@ Boston, MA 02111-1307, USA. */
#define PROT_WRITE 2 #define PROT_WRITE 2
#endif #endif
/* These flags aren't defined on all targets (mingw32), so provide them
here. */
#ifndef S_IRGRP
#define S_IRGRP 0
#endif
#ifndef S_IWGRP
#define S_IWGRP 0
#endif
#ifndef S_IROTH
#define S_IROTH 0
#endif
#ifndef S_IWOTH
#define S_IWOTH 0
#endif
/* This implementation of stream I/O is based on the paper: /* This implementation of stream I/O is based on the paper:
* *
* "Exploiting the advantages of mapped files for stream I/O", * "Exploiting the advantages of mapped files for stream I/O",
...@@ -921,8 +939,8 @@ unpack_filename (char *cstring, const char *fstring, int len) ...@@ -921,8 +939,8 @@ unpack_filename (char *cstring, const char *fstring, int len)
/* tempfile()-- Generate a temporary filename for a scratch file and /* tempfile()-- Generate a temporary filename for a scratch file and
* open it. mkstemp() opens the file for reading and writing, but the * open it. mkstemp() opens the file for reading and writing, but the
* library mode prevents anything that is not allowed. The descriptor * library mode prevents anything that is not allowed. The descriptor
* is returns, which is less than zero on error. The template is * is returned, which is -1 on error. The template is pointed to by
* pointed to by ioparm.file, which is copied into the unit structure * ioparm.file, which is copied into the unit structure
* and freed later. */ * and freed later. */
static int static int
...@@ -940,10 +958,23 @@ tempfile (void) ...@@ -940,10 +958,23 @@ tempfile (void)
template = get_mem (strlen (tempdir) + 20); template = get_mem (strlen (tempdir) + 20);
st_sprintf (template, "%s/gfortantmpXXXXXX", tempdir); st_sprintf (template, "%s/gfortrantmpXXXXXX", tempdir);
#ifdef HAVE_MKSTEMP
fd = mkstemp (template); fd = mkstemp (template);
#else /* HAVE_MKSTEMP */
if (mktemp (template))
do
fd = open (template, O_CREAT | O_EXCL, S_IREAD | S_IWRITE);
while (!(fd == -1 && errno == EEXIST) && mktemp (template));
else
fd = -1;
#endif /* HAVE_MKSTEMP */
if (fd < 0) if (fd < 0)
free_mem (template); free_mem (template);
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment