Re: [Linux-ia64] IP-relative calls in start.S and initfini.c

From: Jim Wilson <wilson_at_cygnus.com>
Date: 2000-05-12 12:50:58
I wrote a simple program that generates a very large program with out of range
calls, compiled it with -Wl,-relax, and looked at the code.  It looks fine.
The out-of-range call gets redirected to a stub at the end of the function
that does a brl with absolute address to the target function.  I don't see
how this can corrupt the gp.

Maybe it is a kernel problem with the emulation?  Have you tried debugging the
code to see where the gp gets corrupted?  Try stepping over the brl instruction
to see if the kernel is clobbering gp.  I don't have a kernel with brl
emulation support yet, so I can not try this myself.

Alternatively, there could be something different about your testcase that
causes the linker relaxation to fail.  I might be obvious if you look at the
code you are getting.

Jim
Received on Thu May 11 19:51:12 2000

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:19:58 EST