Go to file
Jan Beulich 36e2d65d26 ELF32: don't silently truncate relocation addends
At least x86-64's x32 sub-mode and RISC-V's 32-bit mode calculate
addends as 64-bit values, but store them in signed 32-bit fields when
generating the file without encountering any earlier error. When the
relocated field is a 64-bit one, the value resulting after processing
the relocation record when linking (or the latest when loading) may
thus be wrong due to the truncation.

With the code change in place, one x32 testcase actually triggers the
new diagnostic. That one case of too large a (negative) addend is being
adjusted alongside the addition of a new testcase to actually trigger
the new error. (Note that due to internal BFD behavior the relocation in
.data doesn't get processed anymore after the errors in .text.)

Note that in principle it is possible to express 64-bit relocations in
ELF32, but this would require .rel relocations, i.e. with the addend
stored in the 64-bit field being relocated. But I guess it would be a
lot of effort for little gain to actually support this.
2022-03-23 08:43:13 +01:00
bfd ELF32: don't silently truncate relocation addends 2022-03-23 08:43:13 +01:00
binutils objcopy --weaken-symbol: apply to STB_GNU_UNIQUE symbols 2022-03-16 09:40:13 -07:00
config
contrib
cpu
elfcpp
etc
gas ELF32: don't silently truncate relocation addends 2022-03-23 08:43:13 +01:00
gdb gdb: testsuite: use gdb_attach to fix jit-elf.exp 2022-03-23 11:56:46 +08:00
gdbserver nat: Split out platform-independent aarch64 debug register support. 2022-03-22 12:05:43 -07:00
gdbsupport Let phex and phex_nz handle sizeof_l==1 2022-03-07 07:52:59 -07:00
gnulib
gold
gprof Updated Serbian (for binutils/) and Russian (for gprof/) translations 2022-03-16 12:47:50 +00:00
gprofng Only .so files are used in libcollector. Remove the other files. 2022-03-23 16:00:10 +10:30
include LoongArch: Update ABI eflag in elf header. 2022-03-20 09:37:12 +08:00
intl
ld ld:LoongArch: Add test cases to adapt to LoongArch32 and LoongArch64 2022-03-20 09:37:13 +08:00
libbacktrace
libctf
libdecnumber
libiberty
opcodes gas:LoongArch: Fix segment error in compilation due to too long symbol name. 2022-03-20 09:37:12 +08:00
readline
sim sim: gdbinit: hoist setup to common code 2022-02-21 13:57:33 -05:00
texinfo
zlib
.cvsignore
.editorconfig
.gitattributes
.gitignore
ar-lib
ChangeLog gprofng: avoid using `fallthrough' attributes 2022-03-15 21:04:57 +01:00
compile
config-ml.in
config.guess
config.rpath
config.sub
configure gprofng: a new GNU profiler 2022-03-11 08:58:31 +00:00
configure.ac gprofng: a new GNU profiler 2022-03-11 08:58:31 +00: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
Makefile.def gprofng: a new GNU profiler 2022-03-11 08:58:31 +00:00
Makefile.in gprofng: a new GNU profiler 2022-03-11 08:58:31 +00:00
Makefile.tpl
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
README-maintainer-mode
setup.com
src-release.sh gprofng: a new GNU profiler 2022-03-11 08:58:31 +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.