Hi,

someone made some effort to build gfortran on an android phone (see
the PR). One problem was that libgfortran was using the old BSD
S_IREAD and S_IWRITE mode flags instead of the POSIX S_IRUSR and
S_IWUSR. The attached patch replaces the usage of these BSD flags with
the POSIX ones. I decided to omit any ifdef dance in case the target
doesn't support the POSIX flags, since it turns out that we have used
those unconditionally in io/unix.c going back at least to the 4.0
branch.

Ok for trunk?

2011-12-21  Janne Blomqvist  <j...@gcc.gnu.org>
        Tobias Burnus  <bur...@net-b.de>

        PR libfortran/51646
        * acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Use POSIX mode
        flags, omit mode argument when flags argument does not have
        O_CREAT.
        * io/unix.c (tempfile): Use POSIX mode flags.



-- 
Janne Blomqvist
Index: acinclude.m4
===================================================================
--- acinclude.m4	(revision 182581)
+++ acinclude.m4	(working copy)
@@ -119,7 +119,7 @@
 {
   int fd;
 
-  fd = open ("testfile", O_RDWR | O_CREAT, S_IWRITE | S_IREAD);
+  fd = open ("testfile", O_RDWR | O_CREAT, S_IWUSR | S_IRUSR);
   if (fd <= 0)
     return 0;
   if (unlink ("testfile") == -1)
@@ -127,7 +127,7 @@
   write (fd, "This is a test\n", 15);
   close (fd);
 
-  if (open ("testfile", O_RDONLY, S_IWRITE | S_IREAD) == -1 && errno == ENOENT)
+  if (open ("testfile", O_RDONLY) == -1 && errno == ENOENT)
     return 0;
   else
     return 1;
Index: io/unix.c
===================================================================
--- io/unix.c	(revision 182581)
+++ io/unix.c	(working copy)
@@ -1112,9 +1112,9 @@
 
 #if defined(HAVE_CRLF) && defined(O_BINARY)
       fd = open (template, O_RDWR | O_CREAT | O_EXCL | O_BINARY,
-		 S_IREAD | S_IWRITE);
+		 S_IRUSR | S_IWUSR);
 #else
-      fd = open (template, O_RDWR | O_CREAT | O_EXCL, S_IREAD | S_IWRITE);
+      fd = open (template, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
 #endif
     }
   while (fd == -1 && errno == EEXIST);

Reply via email to