Binutils with MCST patches
Go to file
Alan Modra 706704c883 Pack reloc_howto_struct
This patch uses bitfields in reloc_howto_struct, reducing its size
from 80 to 40 bytes on 64-bit hosts and from 52 to 32 bytes on 32-bit
hosts (with a 32-bit bfd_vma).  I've also added a new "negate" field
rather than making the encoded "size" field do double duty as both
a size and a flag.

There was just one use of an encoded size of 8, which according to
bfd_get_reloc_size meant 16 bytes, in vms-alpha.c ALPHA_R_LINKAGE.
See git commit c3d8e071bf adding ALPHA_R_LINKAGE and git commit
8612a388f7 decoding size 8 in bfd_get_reloc_size.  Since no other part
of BFD handles 16 byte relocs, I've removed that encoding and special
cased the ALPHA_R_LINKAGE size in vms-alpha.c.

	* reloc.c (reloc_howto_type): Typedef.
	(bfd_symbol): Delete forward declaration.
	(struct reloc_howto_struct): Add "negate" field.  Make "size",
	"bitsize", "rightshift", "bitpos", "complain_on_overflow",
	"pc_relative", "partial_inplace", and "pcrel_offset" bitfields.
	Rearrange for better packing.  Revise comments.
	(HOWTO): Map to rearranged reloc_howto_struct.
	(bfd_get_reloc_size): Delete now unused cases.
	(read_reloc, write_reloc): Likewise.
	(apply_reloc, _bfd_relocate_contents): Test howto->negate
	rather than howto->size < 0 for negated relocation values.
	* coff-rs6000.c (xcoff_complain_overflow_bitfield_func): Avoid
	signed/unsigned warning.
	(xcoff_ppc_relocate_section): Delete "condition is always false"
	code.
	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
	* cpu-ns32k.c (do_ns32k_reloc): Adjust to suit reloc_howto_struct
	changes.
	* vms-alpha.c (_bfd_vms_write_etir, alpha_vms_slurp_relocs): Use
	size 16 for ALPHA_R_LINKAGE.
	(alpha_howto_table <ALPHA_R_LINKAGE>): Set encoded size and
	bitsize to zero.
	* bfd-in.h (reloc_howto_type): Delete.
	* bfd-in2.h: Regenerate.
2018-08-21 14:59:53 +09:30
bfd Pack reloc_howto_struct 2018-08-21 14:59:53 +09:30
binutils binutils testsuite strip-13 test 2018-08-18 13:46:32 +09:30
config Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
contrib Update dg-extract-results.* from gcc 2018-08-06 16:05:16 +02:00
cpu PR23430, Indices misspelled 2018-07-24 19:58:12 +09:30
elfcpp [GOLD] PowerPC .gnu.attributes support 2018-07-06 15:18:51 +09:30
etc Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
gas Fix s12z test regexps 2018-08-21 14:59:53 +09:30
gdb Fix formatting in solib-svr4.c 2018-08-19 22:04:45 -04:00
gold Fix "may be used uninitialized" warning. 2018-08-07 22:40:33 -07:00
gprof Fix use of "command line X" in binutils doc 2018-07-02 11:18:24 +01:00
include Fix s12z test regexps 2018-08-21 14:59:53 +09:30
intl Backport gettext fixes to get rid of warnings on macOS 2018-08-02 14:56:02 -04:00
ld Remove duplicate ld testsuite function 2018-08-18 13:47:03 +09:30
libdecnumber Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
libiberty Copy from GCC: Add linker_output as prefix for LTO temps (PR lto/86548). 2018-08-01 14:23:10 +01:00
opcodes Fix s12z test regexps 2018-08-21 14:59:53 +09:30
readline Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
sim Update my e-mail address, limit maintenance to MIPS I-IV ISAs 2018-07-21 00:14:01 +01:00
texinfo
zlib Regen doc/Makefile.in 2018-06-21 23:00:05 +09:30
.cvsignore
.gitattributes
.gitignore
COPYING
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
COPYING3
COPYING3.LIB
ChangeLog Update the src-release script to include the new top level files test-driver and ar-lib. 2018-07-16 14:10:35 +01:00
MAINTAINERS
Makefile.def This was already applied on the GCC side. 2018-06-19 00:05:40 +02:00
Makefile.in Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
Makefile.tpl Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
README
README-maintainer-mode Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
ar-lib Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
compile
config-ml.in
config.guess Update config.guess and config.sub 2018-07-05 13:35:19 +02:00
config.rpath
config.sub Update config.sub 2018-07-06 08:23:40 +02:00
configure Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
configure.ac Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
depcomp
djunpack.bat
install-sh
libtool.m4 Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
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 Update the src-release script to include the new top level files test-driver and ar-lib. 2018-07-16 14:10:35 +01:00
symlink-tree
test-driver Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
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.