From: drow Date: Sun, 16 Dec 2007 21:50:05 +0000 (+0000) Subject: * configure.ac: Check for pread and pwrite. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a8b42cccf40620a013913ed5e1f1d778fb2cabe2;p=pf3gnuchains%2Fsourceware.git * configure.ac: Check for pread and pwrite. * hostio.c (handle_pread): Fall back to lseek and read. (handle_pwrite): Fall back to lseek and write. * config.in, configure: Regenerated. --- diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 50d8f1a7ce..10bf1d0d40 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2007-12-16 Daniel Jacobowitz + + * configure.ac: Check for pread and pwrite. + * hostio.c (handle_pread): Fall back to lseek and read. + (handle_pwrite): Fall back to lseek and write. + * config.in, configure: Regenerated. + 2007-12-07 Daniel Jacobowitz * server.c (myresume): Add own_buf argument. diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in index 017a1ed7e2..c666ab2292 100644 --- a/gdb/gdbserver/config.in +++ b/gdb/gdbserver/config.in @@ -53,6 +53,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_TCP_H +/* Define to 1 if you have the `pread' function. */ +#undef HAVE_PREAD + /* Define to 1 if you have the `pread64' function. */ #undef HAVE_PREAD64 @@ -72,6 +75,9 @@ /* Define if the target supports PTRACE_GETREGS for register access. */ #undef HAVE_PTRACE_GETREGS +/* Define to 1 if you have the `pwrite' function. */ +#undef HAVE_PWRITE + /* Define to 1 if you have the header file. */ #undef HAVE_SGTTY_H diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 0b5ed9d87c..b8b2879082 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -3099,7 +3099,9 @@ fi done -for ac_func in pread64 + + +for ac_func in pread pwrite pread64 do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index 4e94f3146b..819feade83 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -41,7 +41,7 @@ AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl errno.h fcntl.h signal.h sys/file.h malloc.h dnl sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl netinet/tcp.h arpa/inet.h sys/wait.h) -AC_CHECK_FUNCS(pread64) +AC_CHECK_FUNCS(pread pwrite pread64) have_errno=no AC_MSG_CHECKING(for errno) diff --git a/gdb/gdbserver/hostio.c b/gdb/gdbserver/hostio.c index f646e85c00..757a229e84 100644 --- a/gdb/gdbserver/hostio.c +++ b/gdb/gdbserver/hostio.c @@ -377,7 +377,13 @@ handle_pread (char *own_buf, int *new_packet_len) } data = malloc (len); +#ifdef HAVE_PREAD ret = pread (fd, data, len, offset); +#else + ret = lseek (fd, offset, SEEK_SET); + if (ret != -1) + ret = read (fd, data, len); +#endif if (ret == -1) { @@ -419,7 +425,13 @@ handle_pwrite (char *own_buf, int packet_len) return; } +#ifdef HAVE_PWRITE ret = pwrite (fd, data, len, offset); +#else + ret = lseek (fd, offset, SEEK_SET); + if (ret != -1) + ret = write (fd, data, len); +#endif if (ret == -1) {