Torbjorn Granlund tg at
Tue Apr 27 21:07:18 CEST 2004

Torbjorn Granlund <tg at> writes:

  David Newman <david.newman at> writes:
    k62-pc-linux-gnu (K6-2 400) running gcc 3.3.3 and configured with
    --enable-mpfr CFLAGS="-O3 -march=k6-2 -fomit-frame-pointer" :: failed on
    "t-modlinv" and didn't complete the rest of the tests.
    However, all tests passed after changing "-O3" to "-O2".

This is a bug in the GNU assembler.  With some luck,
the bug is not triggered by gcc -O2.

This test case can be used to see the bug:

  int  gv;

  foo (void)
    return gv;

The addend of the GLOBAL_OFFSET_TABLE reference is incorrectly
assembled to 3 instead of 2.

I tested with binutils 2.12.1 which has the bug, and with
binutils, where the bug seems to be fixed.

Kevin, it is not clear how to do a configure test for this bug.
Rejecting the assembler from binutils 2.12.1 (and probably many
other versions with the same bug) would be very broad.  Perhaps
one could hope for the best and reject the compiler when it + the
assembler generates the critical object code.


More information about the gmp-devel mailing list