>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).

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 can't offhand think why it would fail when the label is local (assuming it's 
in the same section).  It might always be an assembler bug -- I think you'll 
have to post a more complete example if you still have trouble.

p.


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

Reply via email to