binutils-gdb modified for the FreeChainXenon project
Find a file
Tom Tromey 974b36c2ae Use the new symbol domains
This patch changes the DWARF reader to use the new symbol domains.  It
also adjusts many bits of associated code to adapt to this change.

The non-DWARF readers are updated on a best-effort basis.  This is
somewhat simpler since most of them only support C and C++.  I have no
way to test a few of these.

I went back and forth a few times on how to handle the "tag"
situation.  The basic problem is that C has a special namespace for
tags, which is separate from the type namespace.  Other languages
don't do this.  So, the question is, should a DW_TAG_structure_type
end up in the tag domain, or the type domain, or should it be
language-dependent?

I settled on making it language-dependent using a thought experiment.
Suppose there was a Rust compiler that only emitted nameless
DW_TAG_structure_type objects, and specified all structure type names
using DW_TAG_typedef.  This DWARF would be correct, in that it
faithfully represents the source language -- but would not work with a
purely struct-domain implementation in gdb.  Therefore gdb would be
wrong.

Now, this approach is a little tricky for C++, which uses tags but
also enters a typedef for them.  I notice that some other readers --
like stabsread -- actually emit a typedef symbol as well.  And, I
think this is a reasonable approach.  It uses more memory, but it
makes the internals simpler.  However, DWARF never did this for
whatever reason, and so in the interest of keeping the series slightly
shorter, I've left some C++-specific hacks in place here.

Note that this patch includes language_minimal as a language that uses
tags.  I did this to avoid regressing gdb.dwarf2/debug-names-tu.exp,
which doesn't specify the language for a type unit.  Arguably this
test case is wrong.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30164
2024-01-28 10:58:16 -07:00
bfd Automatic date update in version.in 2024-01-28 00:00:08 +00:00
binutils elf: Rename is_standard_elf to uses_elf_em 2024-01-26 07:32:03 -08:00
config libiberty: Disable hwcaps for sha1.o 2023-11-30 10:14:30 +01:00
contrib Import mklog.py from gcc repo 2020-09-25 10:24:44 -04:00
cpu sim: frv: fix -Wincompatible-function-pointer-types warnings [PR sim/29752] 2024-01-22 20:12:08 -05:00
elfcpp Add markers for 2.42 branch 2024-01-15 14:42:15 +00:00
etc Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gas gas: scfi: untraceable control flow should be a hard error 2024-01-26 11:31:35 -08:00
gdb Use the new symbol domains 2024-01-28 10:58:16 -07:00
gdbserver Update copyright year range in header of all files managed by GDB 2024-01-12 15:49:57 +00:00
gdbsupport Update copyright year range in header of all files managed by GDB 2024-01-12 15:49:57 +00:00
gnulib Regenerate two Makefile.in files to update Copyright headers 2024-01-15 15:44:25 +01:00
gold Updated Serbian translations for th bfd, gold and opcodes directories 2024-01-22 17:26:36 +00:00
gprof Updated translations for various sub-directories 2024-01-18 11:23:48 +00:00
gprofng Fix 31252 gprofng causes testsuite parallel jobs fail 2024-01-22 09:56:42 -08:00
include LoongArch: gas: Add support for s9 register 2024-01-26 16:49:43 +08:00
ld elf: Rename is_standard_elf to uses_elf_em 2024-01-26 07:32:03 -08:00
libbacktrace regen config 2023-08-12 10:27:57 +09:30
libctf Add markers for 2.42 branch 2024-01-15 14:42:15 +00:00
libdecnumber regen config 2023-08-12 10:27:57 +09:30
libiberty Import gcc commit 65388b28656d65595bdaf191df85af81c35ca63 which adds support for explicit object member function mangling. 2024-01-17 12:06:48 +00:00
libsframe libsframe: Fix calloc argument order in dump_sframe_header 2024-01-22 18:19:03 +01:00
opcodes aarch64: move SHA512 instructions to +sha3 2024-01-26 14:58:00 +00:00
readline [readline] Fix double free in _rl_scxt_dispose 2023-05-28 10:17:57 +02:00
sim sim: sh: fix nested braces in struct init 2024-01-23 03:15:02 -05:00
texinfo
zlib regen config 2023-08-12 10:27:57 +09:30
.cvsignore
.editorconfig Add top-level .editorconfig file 2022-01-28 08:25:42 -05:00
.gitattributes binutils-gdb/git: highlight whitespace errors in source files 2022-07-25 14:35:41 +01:00
.gitignore Finalized intl-update patches 2023-11-15 12:53:04 +00:00
ar-lib
ChangeLog Add markers for 2.42 branch 2024-01-15 14:42:15 +00:00
compile
config-ml.in MSP430: Add -fno-exceptions multilib 2023-08-12 10:24:26 +09:30
config.guess Synchronize config.sub and config.guess with their upstream master versions. 2024-01-04 12:00:34 +00:00
config.rpath
config.sub Synchronize config.sub and config.guess with their upstream master versions. 2024-01-04 12:00:34 +00:00
configure Sync top level configure and makefiles 2024-01-10 12:03:03 +00:00
configure.ac Sync top level configure and makefiles 2024-01-10 12:03:03 +00:00
COPYING
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
COPYING3
COPYING3.LIB
depcomp
djunpack.bat
install-sh
libtool.m4 FDPIC: Handle arm*-*-uclinuxfdpiceabi in configure scripts 2023-08-12 10:25:06 +09:30
ltgcc.m4
ltmain.sh Do not use HAVE_DOS_BASED_FILE_SYSTEM for Cygwin. 2023-08-12 10:25:06 +09:30
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
MAINTAINERS MAINTAINERS: Update path to readline config.{sub,guess} files 2021-05-24 18:11:49 +02:00
Makefile.def Sync top level configure and makefiles 2024-01-10 12:03:03 +00:00
Makefile.in Sync top level configure and makefiles 2024-01-10 12:03:03 +00:00
Makefile.tpl Sync top level configure and makefiles 2024-01-10 12:03:03 +00:00
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
README-maintainer-mode Note that at least dejagnu version 1.5.3 is required in order to be ale to run the testsuites. 2022-10-04 10:54:19 +01:00
SECURITY.txt Add a SECURITY.txt file describing the GNU Binutils' project's stance on security related bugs. 2023-04-20 16:52:11 +01:00
setup.com
src-release.sh Add multilib.am to the list of top level files included in any release created by the src-release.sh script 2024-01-19 11:45:10 +00: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.