diff options
author | Joel Brobecker <brobecker@gnat.com> | 2012-02-09 17:29:34 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2012-02-09 17:29:34 +0000 |
commit | f8255c2a40ccc45f929b4ba2f20b74c52719b1a9 (patch) | |
tree | 8b04bb3ba97de825e37f0aa4b90f8b3a42d5f9da | |
parent | 1916efaf84a102ab118cda679ab9bf1ba032c993 (diff) | |
download | gdb-f8255c2a40ccc45f929b4ba2f20b74c52719b1a9.zip gdb-f8255c2a40ccc45f929b4ba2f20b74c52719b1a9.tar.gz gdb-f8255c2a40ccc45f929b4ba2f20b74c52719b1a9.tar.bz2 |
[gdbserver] return ENOSYS if readlink not supported.
This reproduces on the GDBserver side what GDB does when readlink is
not supported.
gdb/gdbserver/ChangeLog:
* configure.ac: Add readlink to AC_CHECK_FUNCS list.
* configure, config.in: Regenerate.
* hostio.c: Provide an alternate implementation if HAVE_READLINK
is not defined.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbserver/config.in | 3 | ||||
-rwxr-xr-x | gdb/gdbserver/configure | 2 | ||||
-rw-r--r-- | gdb/gdbserver/configure.ac | 2 | ||||
-rw-r--r-- | gdb/gdbserver/hostio.c | 4 |
5 files changed, 16 insertions, 2 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 690d2a6..e082309 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2012-02-09 Joel Brobecker <brobecker@adacore.com> + + * configure.ac: Add readlink to AC_CHECK_FUNCS list. + * configure, config.in: Regenerate. + * hostio.c: Provide an alternate implementation if HAVE_READLINK + is not defined. + 2012-02-02 Pedro Alves <palves@redhat.com> Try SIGKILL first, then PTRACE_KILL. diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in index a9472ea..7fa3b5b 100644 --- a/gdb/gdbserver/config.in +++ b/gdb/gdbserver/config.in @@ -128,6 +128,9 @@ /* Define to 1 if you have the `pwrite' function. */ #undef HAVE_PWRITE +/* Define to 1 if you have the `readlink' function. */ +#undef HAVE_READLINK + /* Define to 1 if you have the <sgtty.h> header file. */ #undef HAVE_SGTTY_H diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index d92a00f..e251844 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -4163,7 +4163,7 @@ fi done -for ac_func in pread pwrite pread64 +for ac_func in pread pwrite pread64 readlink do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index 30666ec..7c86cd4 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -43,7 +43,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(pread pwrite pread64) +AC_CHECK_FUNCS(pread pwrite pread64 readlink) AC_REPLACE_FUNCS(memmem vasprintf vsnprintf) # Check for UST diff --git a/gdb/gdbserver/hostio.c b/gdb/gdbserver/hostio.c index 34e4fa8..03aab58 100644 --- a/gdb/gdbserver/hostio.c +++ b/gdb/gdbserver/hostio.c @@ -459,6 +459,7 @@ handle_unlink (char *own_buf) static void handle_readlink (char *own_buf, int *new_packet_len) { +#if defined (HAVE_READLINK) char filename[PATH_MAX], linkname[PATH_MAX]; char *p; int ret, bytes_sent; @@ -485,6 +486,9 @@ handle_readlink (char *own_buf, int *new_packet_len) to return a partial response, but simply fail. */ if (bytes_sent < ret) sprintf (own_buf, "F-1,%x", FILEIO_ENAMETOOLONG); +#else /* ! HAVE_READLINK */ + sprintf (own_buf, "F-1,%x", FILEIO_ENOSYS); +#endif } /* Handle all the 'F' file transfer packets. */ |