Wrong jump/branch-offsets with assembler startup

Alan Modra amodra@gmail.com
Sat Mar 16 02:03:00 GMT 2013

On Fri, Mar 15, 2013 at 06:50:25PM +0100, Jens Mehler wrote:
> Whenever I try assemble with two files let's call them start.s (that
> handles setting the stack poiner and jumping to main) and hello.s (that
> contains code to emit a string) the jump/branch offsets are off by one.
> This is not the case for jumping to main, it is however everywhere
> starting from main i.e. in main in a jump to foo this jump is off by one
> (negative one) while the offset from start to main is spot on.
> The problem vanishes when I put the stuff from start.s into hello.s
> Could someone please give me a pointer on how to solve this problem?

First examine your object files.  Are the relocations correct?  If
not, you have an assembler problem rather than a linker problem.

Alan Modra
Australia Development Lab, IBM

More information about the Binutils mailing list