Binutils with MCST patches
Go to file
Simon Marchi a0be7a3671 Fix gdb.mi/mi-stack.exp when gcc generates a stack protector
I see some failures in the gdb.mi/mi-stack.exp test.  The test runs to
the callee4 function:

  int callee4 (void)
  {
    int A=1;
    int B=2;
    int C;
    int D[3] = {0, 1, 2};

    C = A + B;
    return 0;
  }

and expects to be stopped at the A=1 line.  However, when gcc generates
some stack protection code, it will stop at the { instead, as shown by
this disassembly (after I did "break callee4" and "run"):

  (gdb) disassemble /s
  Dump of assembler code for function callee4:
  /home/simark/src/binutils-gdb/gdb/testsuite/gdb.mi/mi-stack.c:
  26	{
     0x00005555555546ca <+0>:	push   %rbp
     0x00005555555546cb <+1>:	mov    %rsp,%rbp
     0x00005555555546ce <+4>:	sub    $0x20,%rsp
  => 0x00005555555546d2 <+8>:	mov    %fs:0x28,%rax
     0x00005555555546db <+17>:	mov    %rax,-0x8(%rbp)
     0x00005555555546df <+21>:	xor    %eax,%eax

  27	  int A=1; /* callee4 begin */
     0x00005555555546e1 <+23>:	movl   $0x1,-0x20(%rbp)

  28	  int B=2;
     0x00005555555546e8 <+30>:	movl   $0x2,-0x1c(%rbp)

The rest of the test relies on execution stopping on the A=1, so many things
fail after that.  This patch uses mi_continue_to_line instead, to stop at the
A=1 line precisely.

gdb/testsuite/ChangeLog:

	* gdb.mi/mi-stack.exp (test_stack_frame_listing): Use
	mi_continue_to_line.
	* gdb.mi/mi-stack.c (callee4): Add comment.
2018-04-07 14:09:14 -04:00
bfd Automatic date update in version.in 2018-04-07 00:00:25 +00:00
binutils Display all DWARF 5 language names 2018-04-06 10:58:34 -06:00
config config: Sync with GCC 2018-04-05 15:22:13 -07:00
cpu
elfcpp Add support for R_AARCH64_TLSLE_LDST8_TPREL_LO12, etc. 2018-03-28 09:10:25 -07:00
etc
gas Use dlsym to check if libdl is needed for plugin 2018-04-05 15:31:53 -07:00
gdb Fix gdb.mi/mi-stack.exp when gcc generates a stack protector 2018-04-07 14:09:14 -04:00
gold Further improve warnings for relocations referring to discarded sections. 2018-04-06 22:50:14 -07:00
gprof Use dlsym to check if libdl is needed for plugin 2018-04-05 15:31:53 -07:00
include [1/2][GAS][AARCH64]Add BFD_RELOC_AARCH64_TLSLE_LDST8/16/32/64_TPREL_LO12 support in GAS. 2018-03-28 18:03:55 +01:00
intl
ld Use dlsym to check if libdl is needed for plugin 2018-04-05 15:31:53 -07:00
libdecnumber
libiberty
opcodes i386: Clear vex instead of vex.evex 2018-04-04 04:36:44 -07:00
readline
sim
texinfo
zlib
.cvsignore
.gitattributes
.gitignore
COPYING
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
COPYING3
COPYING3.LIB
ChangeLog
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
README
README-maintainer-mode
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
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
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.