This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: The new assembler with unwind table bug fix


Hi Jim and HJ,

The new assembler passes my original test-case, which is great!

Then I thought I'd do some more sanity checking by compiling the Linux
kernel with -falign-loops=32.  Unfortunately, it looks like that's
triggering a bug:

  CC      init/initramfs.o
{standard input}: Assembler messages:
{standard input}:26621: Internal error!
Assertion failure in cvt_frag_to_fill at ../../binutils/gas/write.c line 588.
Please report this bug.
make[1]: *** [init/initramfs.o] Error 1
make: *** [init] Error 2

Here is an extremely stripped down version of initramfs.s which
reproduces the problem:

$ cat initramfs.s
	.proc write_buffer
write_buffer:
	.prologue 12, 36
	.save ar.pfs, r37
	{ nop 2 }
	.save rp, r36
	{ nop 2 }
	.body
	{ nop 1 }
	{ nop 1 }
	{ nop 1 }
	{ nop 1 }
	.align 32
	{ nop 0 }
	{ nop 0 }
	{ nop 0 }
	{ nop 0 }
	{ nop 0 }
	.endp write_buffer

$ as -v
GNU assembler version 2.14.90 (ia64-unknown-linux-gnu) using BFD version 2.14.90 20040211

$ as initramfs.s
initramfs.s: Assembler messages:
initramfs.s:19: Internal error!
Assertion failure in cvt_frag_to_fill at ../../binutils/gas/write.c line 588.
Please report this bug.

It seems like the exact number of bundles in the code play some role,
as well as the exact set of unwind directives being used.  I don't
quite understand what the assertion at write.c:588 is trying to prove.

	--david


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]