Binutils with MCST patches
Go to file
Don Breazeal bfacd19d64 Initialize last_resume_kind for remote fork child
This patch fixes some intermittent test failures in
gdb.base/foll-vfork.exp where a vfork child would be (incorrectly)
resumed when handling the vfork event.  In this case the result
was a subsequent event reported to the client side as a SIGTRAP
delivered to the as-yet-unknown child thread.

The new thread was resumed (incorrectly) in linux-low.c when
resume_stopped_resumed_lwps was called from
linux_wait_for_event_filtered after the vfork event had been
handled in handle_extended_wait.

Gdbserver/linux-low.c's add_thread function creates threads with
last_resume_kind == resume_continue by default.  This field is
used by resume_stopped_resumed_lwps to decide whether to perform
the resume:

static void
resume_stopped_resumed_lwps (struct inferior_list_entry *entry) {
  struct thread_info *thread = (struct thread_info *) entry;
  struct lwp_info *lp = get_thread_lwp (thread);

  if (lp->stopped
      && !lp->status_pending_p
      && thread->last_resume_kind != resume_stop
      && thread->last_status.kind == TARGET_WAITKIND_IGNORE)
    {

So the fix is to make sure to set thread->last_resume_kind to
resume_stop.  Here we do that for new fork children in
gdbserver/linux-low.c:handle_extended_wait.

In addition, it seemed prudent to initialize lwp_info.status_pending_p
for the new fork child.  I also rearranged the initialization code
so that all of the lwp_info initialization was together, rather than
intermixed with thread_info and process_info initialization.

Tested native, native-gdbserver, native-extended-gdbserver on
x86_64 GNU/Linux.

gdb/gdbserver/

	* linux-low.c (handle_extended_wait): Initialize
	thread_info.last_resume_kind for new fork children.
2015-05-28 14:40:30 -07:00
bfd Automatic date update in version.in 2015-05-28 00:00:08 +00:00
binutils All FreeBSD targets are ELF except i?86-*-freebsd\[12\].*. 2015-05-26 22:52:39 +09:30
config Set zlibdir/zlibinc with top_builddir/top_srcdir 2015-04-02 05:43:07 -07:00
cpu
elfcpp Add chdr_size, Chdr, Chdr_write and Chdr_data 2015-04-08 10:29:40 -07:00
etc
gas xtensa: fix gas segfault with --text-section-literals 2015-05-26 10:14:17 +03:00
gdb Initialize last_resume_kind for remote fork child 2015-05-28 14:40:30 -07:00
gold [GOLD] Add PowerPC64 -fsplit-stack support 2015-05-16 22:49:57 +09:30
gprof Updated translations for various binutils components. 2015-04-29 16:26:14 +01:00
include [AArch64] Add R_AARCH64_P32_LD32_GOTPAGE_LO14 to elf header 2015-05-12 13:47:15 +01:00
intl
ld Convert PLT reloc only if pointer equality isn't needed 2015-05-27 14:32:24 -07:00
libdecnumber
libiberty libiberty/mkstemps.c: Include <time.h> if <sys/time.h> not available. 2015-05-08 10:15:28 -07:00
opcodes Remove Disp32 from AMD64 direct call/jmp 2015-05-18 04:17:12 -07:00
readline
sim sim: erc32: restore attribution 2015-05-17 17:15:36 +08:00
texinfo
zlib Add missing ChangeLog entry 2015-03-31 13:15:01 -07:00
.cvsignore
.gitattributes
.gitignore
COPYING
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
COPYING3
COPYING3.LIB
ChangeLog Disable the configuration of GDB for HPUX targets. 2015-05-13 17:32:01 +01:00
MAINTAINERS
Makefile.def Configure zlib with --enable-host-shared for shared bfd 2015-05-01 08:34:08 -07:00
Makefile.in Configure zlib with --enable-host-shared for shared bfd 2015-05-01 08:34:08 -07:00
Makefile.tpl Update top-level files from GCC trunk 2015-03-16 09:12:37 -07:00
README
README-maintainer-mode
compile
config-ml.in Sync config-ml.in with GCC trunk 2015-03-17 05:15:34 -07:00
config.guess Update config.guess and config.sub to the latest upstream version 2015-03-30 16:28:14 -04:00
config.rpath
config.sub Update config.guess and config.sub to the latest upstream version 2015-03-30 16:28:14 -04:00
configure Disable the configuration of GDB for HPUX targets. 2015-05-13 17:32:01 +01:00
configure.ac Disable the configuration of GDB for HPUX targets. 2015-05-13 17:32:01 +01:00
depcomp
djunpack.bat
install-sh
libtool.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
setup.com
src-release.sh Adjust src-release.sh for sim using the gdb create-version.sh. 2015-04-15 04:08:51 +02:00
symlink-tree
ylwrap

README

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.