heads up: apparent GAS bug in current (CVS) binutils

David Mosberger
2005-05-12T21:55:40Z

Just a quick heads up (it's late here and I'll be on travel tomorrow
so I don't have time for a proper investigation/bug-report at the
moment):

If I build the kernel with the assembler from the current CVS
binutils, I see these errors:

ERROR: proc_set_irq_affinity: 179742 slots, total region length = 36
ERROR: idle_regs: 68847 slots, total region length = 15

The error in proc_set_irq_affinity() is definitely real and a result
of the assembler (the assembly code generated by GCC looks fine). I
didn't check on idle_regs.

readelf -u vmlinux shows this:

<proc_set_irq_affinity>: [0xa00000010000ef60-0xa0000001000f9000], info at +0x765
c50
v1, flags=0x0 (), len=8 bytes
R2:prologue_gr(mask=[rp,ar.pfs],grsave=r34,rlen=8)
P7:pfs_when(t=0)
P7:rp_when(t=7)
R1:body(rlen()

<move_irq>: [0xa00000010000f0c0-0xa00000010000f250], info at +0x75da00

Note how the end-address of proc_set_irq_affinity() is _way_ beyond
the start-address of the next function, move_irq. Clearly something
weird happened here.

If I use the standard Debian/sarge assembler, these errors go away and
the unwind-info looks sane.

--david