Subject: bfd&aout extended reloc howto callbacks ...
To: <>
From: Andrew Cagney <cagney@highland.com.au>
List: tech-ports
Date: 10/17/1994 11:57:25
[Follow-ups to gnu.utils.bug]

Hello,


(Background) There are two types of a.out relocations `traditional'
and `extended'.  Here I'm proposing a change to the way extended
reloc's are handled for a.out object files.

At present, extended relocations are kept in a table.  With (until bfd
in gas-4.13) certain entries being magic (eg the constructor reloc).

I would like to see the a.out extend relocation interface to the
backend extended so that it includes:


	o	Call back function (or pointer) to find (define) the
		`C++ constructor reloc howto'.

		Since I made this change to my local bfd, gdb-4.13 bfd got
		released, it addresses this problem a different way.


	o	Call back to, given an external reloc type, find the
		internal reloc howto structure.

		This is more generic then a table.  It would appear
		that elf backends already use this.


	o	Call back to determine the type of relocation
		(`traditional' or extended).

		At present code determines that a relocation is
		`extended' because it is a certain size.


Comments?  If interested in further detail I've got working examples
for both binutils-2.4 bfd and the gdb-4.13 bfd.


				Andrew