mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00

This adds a new flag to the reloc howtos that can be used to incrementally change targets over to simple bfd_install_relocation that just installs the addend without any weird adjustments. I've made a few other changes to bfd_install_relocation, removing dead code and comments that are really only applicable to bfd_perform_relocation. There is also a reloc offset bounds check change. I've moved the check to where data is accessed, as it seems reasonable to me to not perform the check unless it is needed. There is precedence for this; Relocations against absolute symbols already avoided the check. I also tried always performing the reloc offset check, and ran into testsuite failures due to _NONE and _ALIGN relocs at the end of sections. These likely would be fixed if all such reloc howtos had size set to zero, but I would rather not edit lots of files when it involves checking that target code does not use the size. * reloc.c (struct reloc_howto_struct): Add install_addend. (HOWTO_INSTALL_ADDEND): Define. (HOWTO): Init new field with HOWTO_INSTALL_ADDEND. (bfd_install_relocation): Remove comments copied from bfd_perform_relocation that aren't applicable here. Remove code dealing with output_offset and output_section. Just set relocation to addend if install_addend. Move reloc offset bounds check to just before section data is accessed, avoiding the check when data is not accessed. * bfd-in2.h: Regenerate.
…
…
…
…
…
…
…
…
…
…
…
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.
Description
Languages
C
51.8%
Makefile
22.4%
Assembly
12.3%
C++
6%
Roff
1.4%
Other
5.4%