From c5f62d5ff9f52f2170a401631240af7bf7a850e3 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Mon, 21 Dec 2009 21:23:43 +0000 Subject: [PATCH] gdb/ * linux-nat.c (kill_lwp): Minor cleanup, move definition of tkill_failed into ifdef HAVE_TKILL_SYSCALL. Move setting of errno there too. Delete unnecessary resetting of errno after syscall. Minor comment changes to match gdbserver/linux-low.c:kill_lwp. gdbserver/ * linux-low.c (kill_lwp): Use __NR_tkill instead of SYS_tkill. Move definition of tkill_failed to ifdef __NR_tkill to avoid gcc warning ifndef __NR_tkill. Move setting of errno there too. Delete unnecessary resetting of errno after syscall. Minor comment changes to match gdb/linux-nat.c:kill_lwp. --- gdb/ChangeLog | 7 +++++++ gdb/gdbserver/ChangeLog | 6 ++++++ gdb/gdbserver/linux-low.c | 30 +++++++++++++++++------------- gdb/linux-nat.c | 32 +++++++++++++++++--------------- 4 files changed, 47 insertions(+), 28 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1c82ebcf285..0d9691ade4c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2009-12-21 Doug Evans + + * linux-nat.c (kill_lwp): Minor cleanup, move definition of + tkill_failed into ifdef HAVE_TKILL_SYSCALL. Move setting of errno + there too. Delete unnecessary resetting of errno after syscall. + Minor comment changes to match gdbserver/linux-low.c:kill_lwp. + 2009-12-21 Alan Modra * MAINTAINERS: Update my email address. diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 6cd1b792a3c..2e388dfe5cd 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,11 @@ 2009-12-21 Doug Evans + * linux-low.c (kill_lwp): Use __NR_tkill instead of SYS_tkill. + Move definition of tkill_failed to ifdef __NR_tkill to avoid gcc + warning ifndef __NR_tkill. Move setting of errno there too. + Delete unnecessary resetting of errno after syscall. + Minor comment changes to match gdb/linux-nat.c:kill_lwp. + * configure.ac: Check for dladdr. * config.in: Regenerate. * configure: Regenerate. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 8b7d9e8e4ec..8e91d2b608a 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1572,25 +1572,29 @@ linux_wait (ptid_t ptid, return event_ptid; } -/* Send a signal to an LWP. For LinuxThreads, kill is enough; however, if - thread groups are in use, we need to use tkill. */ +/* Send a signal to an LWP. */ static int kill_lwp (unsigned long lwpid, int signo) { - static int tkill_failed; + /* Use tkill, if possible, in case we are using nptl threads. If tkill + fails, then we are not using nptl threads and we should be using kill. */ - errno = 0; +#ifdef __NR_tkill + { + static int tkill_failed; -#ifdef SYS_tkill - if (!tkill_failed) - { - int ret = syscall (SYS_tkill, lwpid, signo); - if (errno != ENOSYS) - return ret; - errno = 0; - tkill_failed = 1; - } + if (!tkill_failed) + { + int ret; + + errno = 0; + ret = syscall (__NR_tkill, lwpid, signo); + if (errno != ENOSYS) + return ret; + tkill_failed = 1; + } + } #endif return kill (lwpid, signo); diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index c0afecd4270..c3bc5169f2b 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -2034,27 +2034,29 @@ linux_nat_resume (struct target_ops *ops, target_async (inferior_event_handler, 0); } -/* Issue kill to specified lwp. */ - -static int tkill_failed; +/* Send a signal to an LWP. */ static int kill_lwp (int lwpid, int signo) { - errno = 0; - -/* Use tkill, if possible, in case we are using nptl threads. If tkill - fails, then we are not using nptl threads and we should be using kill. */ + /* Use tkill, if possible, in case we are using nptl threads. If tkill + fails, then we are not using nptl threads and we should be using kill. */ #ifdef HAVE_TKILL_SYSCALL - if (!tkill_failed) - { - int ret = syscall (__NR_tkill, lwpid, signo); - if (errno != ENOSYS) - return ret; - errno = 0; - tkill_failed = 1; - } + { + static int tkill_failed; + + if (!tkill_failed) + { + int ret; + + errno = 0; + ret = syscall (__NR_tkill, lwpid, signo); + if (errno != ENOSYS) + return ret; + tkill_failed = 1; + } + } #endif return kill (lwpid, signo); -- 2.30.2