On Tue, 28 Sep 1999, Philip Blundell wrote:

> >syscall.S: Assembler messages:
> >syscall.S:170: Error: Internal_relocation (type 178) not fixed up
> >(IMMEDIATE)
> 
> >     Its part of my own code (not linux). The instruction is:
> >
> >     adr     tmp0, fast_syscall_return
> >
> >tmp0 is a #define to a register, fast_syscall_return is a label in another
> >source file (doesn't matter if I make it local)
> 
> Remember that ADR is syntactic sugar for 'add rN, pc, #const'.  If the label 
> is in another file then the offset to it is not an assemble-time constant and 
> the instruction can't be generated (currently the GNU tools don't support 
> immediate relocations).

        Or sub :)
> 
> You can do 'ldr tmp0, =fast_syscall_return' which will be slightly less 
> efficient but more robust.  Otherwise you have to make the symbol definition
> visible to the assembler or teach it how to handle the necessary relocations.
> 
        I'm avoiding ldr's, the problem was wrong section for the local
label. I moved the real label into the same file, now all works even if
the file is a little bloated now.

        Cheers Adam

unsubscribe: body of `unsubscribe linux-arm' to [EMAIL PROTECTED]

Reply via email to