mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
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.
This commit is contained in:
parent
10e86dd778
commit
c5f62d5ff9
@ -1,3 +1,10 @@
|
||||
2009-12-21 Doug Evans <dje@google.com>
|
||||
|
||||
* 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 <amodra@gmail.com>
|
||||
|
||||
* MAINTAINERS: Update my email address.
|
||||
|
@ -1,5 +1,11 @@
|
||||
2009-12-21 Doug Evans <dje@google.com>
|
||||
|
||||
* 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.
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user