On 6/28/06, Daniel Jacobowitz <[EMAIL PROTECTED]> wrote:
GOTOFF support has been there for a long while. Only use of it for static functions is recent. It should be easy to find. But this is not at all the only problem. GCC's PIC model assumes a fixed displacement between segments.
Even if a fixed displacement is a basic assumption, it doesn't seem to affect the ARM PIC/XIP code drastically, except for this specific case of a static callback function. Everything else seems to `just work'. A simple "Hello, world!" application linked statically against newlib and using stdio (which is fairly non-trivial) works, for example. I'm not terribly familiar with the GCC source tree. I scanned config/arm/arm.c and its SVN log for changes that might affect GOTOFF32, but came up empty. Do you know where the decision of GOT or GOTOFF would be handled?
We've implemented something similar to what you need for VxWorks. A couple of other places had to be changed. I don't remember if the VxWorks gcc port was submitted, or just the binutils bits.
Any chance of this work making it into GCC? Cheers, Shaun