Well, just to see what would happen, I changed the Athlon optimisations
to PentiumPro optimisations, and it compiled fine. The make test still
fails:

[root@localhost ruby-1.6.1]# make test
not ok float 9 -- /downloads/ruby-1.6.1/sample/test.rb:562
test failed
make: *** [test] Error 1

(gdb) r ./sample/test.rb
Starting program: /downloads/ruby-1.6.1/miniruby ./sample/test.rb
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
assignment
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
condition
ok 1
ok 2
if/unless
ok 1
ok 2
ok 3
case
ok 1
ok 2
ok 3
ok 4
ok 5
while/until
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
exception
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
array
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
ok 36
hash
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
iterator
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
float
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
not ok float 9 -- ./sample/test.rb:562
bignum
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
string & char
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
ok 36
ok 37
ok 38
ok 39
ok 40
ok 41
ok 42
ok 43
ok 44
ok 45
ok 46
ok 47
ok 48
ok 49
ok 50
ok 51
ok 52
ok 53
ok 54
assignment
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
call
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
proc
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
signal

Program received signal SIGINT, Interrupt.
0x4008a091 in kill () from /lib/libc.so.6
(gdb) where
#0  0x4008a091 in kill () from /lib/libc.so.6
#1  0x80a54cb in rb_f_kill ()
#2  0x8058f79 in call_cfunc ()
#3  0x80594b1 in rb_call0 ()
#4  0x8059bb4 in rb_call ()
#5  0x805514c in rb_eval ()
#6  0x8053b31 in rb_eval ()
#7  0x8053b31 in rb_eval ()
#8  0x80520b4 in ruby_run ()
#9  0x8050761 in main ()
#10 0x40083cae in __libc_start_main () from /lib/libc.so.6
(gdb)

But otherwise, so far it seems to be working (altho' I haven't had time
to run more than a "Hello World" sort of app.......

Of course, it might be a good idea to try and make Ruby compile
successfully with AthlonGCC, in which case I'll volunteer to test
various things/patches/etc....

-Scott-

> |Program received signal SIGSEGV, Segmentation fault.
> |0x400bd5fe in free () from /lib/libc.so.6
>
> This information strongly suggests that there're pointer bugs.  But I
> couldn't find any of them using checkergcc.  sigh.
>
>                                                         matz.