[parisc-linux] Get rid of %r8 linker stubs

Jeffrey A Law law@cygnus.com
Thu, 22 Jun 2000 14:35:39 -0600


  > = Hello all,
  > =    The attached patch to puffin.external.hp.com CVS binutils-2.10
  > = implements a new linker stub scheme for elf32-hppa.  (Well, it's new for
  > = gnu - I believe the hp linker does something like this).
  > = 
  > = The new scheme works like this:  For any linker input section that needs 
  > a
  > = stub to reach called routines, the linker creates a stub section located
  > = immediately prior to the input section.  A call is simply redirected to
  > = the stub, which consists of a long branch
  > =   ldil LR'XXX,%r1
  > =   be,n RR'XXX(%sr4,%r1)
  > = to the destination.
An FYI -- this is precisely the kind of scheme that I've wanted to see
for the GNU PA tools.

I'd like to get this code integrated into the official binutils releases.

  > = to the implicit %r31 used by "be,l".  Additionally, when we finally
  > = implement elf32-hppa shared libraries, there are going to be a _lot_ more
  > = stubs.  We may even exceed the maximum 256k of stubs, especially if we tr
  > = to combine .plt and .got with stubs to get a register back.
Not only that, the old scheme was not relocatable since it assumed all the
stubs sat in the first 256k of the address space .

jeff