mirror of git://gcc.gnu.org/git/gcc.git
Many POSIX systems have the bad habit of not restarting interrupted
syscalls. On these systems it's up to the user to check for an error
with errno == EINTR and restart manually. This patch does this for
libgfortran, so that GFortran users don't have to do it.
2016-10-09 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/67585
* io/io.h: TEMP_FAILURE_RETRY: Define macro if not found.
* io/unix.c (raw_read): Handle EINTR.
(raw_write): Check for return value -1.
(raw_seek): Handle EINTR.
(raw_tell): Likewise.
(raw_size): Likewise.
(raw_truncate): Likewise.
(raw_close): Likewise.
(buf_flush): Call raw_seek instead of lseek.
(buf_read): Likewise.
(buf_write): Likewise.
(fd_to_stream): Handle EINTR.
(tempfile_open): Likewise.
(regular_file2): Likewise.
(compare_file_filename): Likewise.
(find_file): Likewise.
(inquire_sequential): Likewise.
(inquire_direct): Likewise.
(inquire_formatted): Likewise.
From-SVN: r240902
|
||
|---|---|---|
| .. | ||
| close.c | ||
| fbuf.c | ||
| fbuf.h | ||
| file_pos.c | ||
| format.c | ||
| format.h | ||
| inquire.c | ||
| intrinsics.c | ||
| io.h | ||
| list_read.c | ||
| lock.c | ||
| open.c | ||
| read.c | ||
| size_from_kind.c | ||
| transfer.c | ||
| transfer128.c | ||
| unit.c | ||
| unix.c | ||
| unix.h | ||
| write.c | ||
| write_float.def | ||