Kevin Ryde user42 at
Tue Apr 27 22:22:23 CEST 2004

Torbjorn Granlund <tg at> writes:
> I could reproduce this on our systems here (actually on an
> athlon-pc-freebsd using the same options as you).

Ah yes.  A bug in past versions of gas.  In refmpn_random_half in
tests/refmpn.c gcc emits

        addl    $_GLOBAL_OFFSET_TABLE_, %eax

but gas assembles that with an offset of 2 in the relocation, where it
should be 1 for a 1 byte opcode.  (It's 2 bytes for a register other
than eax, like ebx which gcc always used to use for the GOT).

Seems to be fixed in debian binutils  I remember striking
this when trying to do the same in some hand written asm, there's a
note about it in mpn/x86/README.

More information about the gmp-devel mailing list