Binutils with MCST patches
Go to file
Tom de Vries dd1cab0694 [gdb/testsuite] Fix gdb.ada/catch_ex_std.exp gnatlink FAIL
When running test-case gdb.ada/catch_ex.exp using system gnatmake, gnatmake is
invoked like this:
...
Executing on host: \
  gnatmake foo.adb -gnata -f -Isrc/gdb/testsuite/gdb.ada/catch_ex -g -lm \
    -o outputs/gdb.ada/catch_ex/foo
...

When I try to use a more recent gnatmake, by mocking up a combined build:
...
$ ls -la build/gcc/
lrwxrwxrwx  gfortran -> /usr/bin/gfortran-10
lrwxrwxrwx  gnatbind -> /usr/bin/gnatbind-10
lrwxrwxrwx  gnatlink -> /usr/bin/gnatlink-10
lrwxrwxrwx  gnatmake -> /usr/bin/gnatmake-10
lrwxrwxrwx  xg++ -> /usr/bin/g++-10
lrwxrwxrwx  xgcc -> /usr/bin/gcc-10
...
gnatmake is invoked like this:
...
Executing on host: \
  /data/gdb_versions/devel/build/gcc/gnatmake \
    -I/data/gdb_versions/devel/build/gcc/ada/rts \
    --GCC=/data/gdb_versions/devel/build/gcc/xgcc \
    --GNATBIND=/data/gdb_versions/devel/build/gcc/gnatbind \
    --GNATLINK=/data/gdb_versions/devel/build/gcc/gnatlink \
    -cargs -B/data/gdb_versions/devel/build/gcc \
    -largs --GCC=/data/gdb_versions/devel/build/gcc/xgcc \
    -B/data/gdb_versions/devel/build/gcc \
    -margs foo.adb -gnata -f -Isrc/gdb/testsuite/gdb.ada/catch_ex -g -lm \
    -o outputs/gdb.ada/catch_ex/foo
...

This is set up by this bit in find_gnatmake in
/usr/share/dejagnu/libgloss.exp:
...
    if {![is_remote host]} {
        set file [lookfor_file $tool_root_dir gnatmake]
        if { $file == "" } {
            set file [lookfor_file $tool_root_dir gcc/gnatmake]
        }
        if { $file != "" } {
            set root [file dirname $file]
            set CC "$file -I$root/ada/rts --GCC=$root/xgcc \
	      --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink \
	      -cargs -B$root \
	      -largs --GCC=$root/xgcc -B$root -margs"
        } else {
...

However, when running test-case gdb.ada/catch_ex_std.exp using the mockup
combined build, we get:
...
Executing on host: \
  /data/gdb_versions/devel/build/gcc/gnatlink foo \
    -Wl,-rpath,\$ORIGIN -Wl,-lsome_package

b~foo.adb:26:79: "SS_Stack" not declared in "Secondary_Stack"^M
b~foo.adb:26:89: incorrect constraint for this kind of type^M
b~foo.adb:121:56: "Runtime_Default_Sec_Stack_Size" not declared in "Parameters"^M
FAIL: gdb.ada/catch_ex_std.exp: gnatlink foo
...

The problem is caused by the fact that the test uses gnatlink directly
rather than using gnatmake.  The invoked gnatlink (which is gnatlink-10) calls
gcc-7, which are incompatible (see gcc PR86211).  This problem doesn't occur
with gnatmake because there the gcc to use is passed as an argument to
gnatlink.

Fix this by adding the -largs bit from find_gnatmake in find_ada_tool, for the
case that $tool == gnatlink.

Tested on x86_64-linux, with system gcc, and gcc-10.

gdb/testsuite/ChangeLog:

2020-04-13  Tom de Vries  <tdevries@suse.de>

	* lib/ada.exp (find_ada_tool): Pass --GCC and -B to gnatlink, similar
	to what find_gnatmake does.
2020-04-13 18:53:14 +02:00
bfd Automatic date update in version.in 2020-04-13 00:00:10 +00:00
binutils ld: Disable ifunc tests on Solaris 2020-04-02 10:52:57 +02:00
config Merge changes from GCC for the config/ directory 2020-02-19 17:51:24 +00:00
contrib
cpu ubsan: m32c: left shift of negative value 2020-02-03 15:59:08 +10:30
elfcpp Add markers for 2.34 branch to the NEWS files and ChangeLogs. 2020-01-18 13:50:25 +00:00
etc texi2pod.pl: import support for @t{...} from gcc 2020-01-15 12:58:09 -05:00
gas x86: Correct -mlfence-before-indirect-branch= documentation 2020-04-08 19:31:45 -07:00
gdb [gdb/testsuite] Fix gdb.ada/catch_ex_std.exp gnatlink FAIL 2020-04-13 18:53:14 +02:00
gdbserver Add pending stop support to gdbserver's Windows port 2020-04-08 14:47:59 -06:00
gdbsupport Don't pass NULL to memcpy in gdb 2020-03-31 07:29:53 -06:00
gnulib gdb: update gnulib import 2020-02-22 20:37:18 -05:00
gold Add support for --no-rosegment option. 2020-03-19 15:54:38 -07:00
gprof Updated Serbian translation for the gprof subdirectory 2020-04-01 14:37:02 +01:00
include coff-go32-exe: support variable-length stubs 2020-04-02 14:31:43 +01:00
intl Regen with blessed automake-1.15.1 2020-02-20 13:02:24 +10:30
ld ld: xfail several shared (non PIC) tests on Solaris 2020-04-10 11:18:10 +02:00
libctf libctf: Mark bswap_identity_64 inline function as static. 2020-03-11 17:48:49 +10:30
libdecnumber
libiberty Import latest fixes to libiberty from GCC 2020-03-02 03:56:36 -08:00
opcodes Add support for intel TSXLDTRK instructions$ 2020-04-07 13:59:50 +08:00
readline
sim sim: ppc: netbsd: Sync signal names with NetBSD 9.99.49 2020-03-12 16:07:37 +01:00
texinfo
zlib Merge changes from GCC for the config/ directory 2020-02-19 17:51:24 +00:00
.cvsignore
.gitattributes
.gitignore
ar-lib
ChangeLog Change gdbserver to use existing gdbsupport 2020-03-12 13:32:16 -06:00
compile
config-ml.in
config.guess Update top level config files with copies from the official repository. 2020-01-18 13:43:19 +00:00
config.rpath
config.sub Update top level config files with copies from the official repository. 2020-01-18 13:43:19 +00:00
configure Fix gdbserver-without-gdb build 2020-02-17 10:03:15 -07:00
configure.ac Fix gdbserver-without-gdb build 2020-02-17 10:03:15 -07:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
depcomp
djunpack.bat
install-sh
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS Move gdbserver to top level 2020-02-07 08:42:25 -07:00
Makefile.def Change gdbserver to use existing gdbsupport 2020-03-12 13:32:16 -06:00
Makefile.in Change gdbserver to use existing gdbsupport 2020-03-12 13:32:16 -06:00
Makefile.tpl
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
README-maintainer-mode
setup.com
src-release.sh Move gdbserver to top level 2020-02-07 08:42:25 -07:00
symlink-tree
test-driver
ylwrap

		   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.