Re: [Linux-ia64] Re: gas generates incorrect ia64 unwind rlen values

David Mosberger
2002-12-17T03:25:39Z

Keith> I used gcc 2.96 20000731 (Red Hat Linux 7.1 2.96-101) to
Keith> convert traps.c to traps.S, then extracted the headers and
Keith> ia64_fault for testing against gas. traps.S only has one
Keith> body. I wanted to avoid dumping 530+ lines to the list but
Keith> ...

Keith> Interesting that a different gcc which generates two bodies
Keith> gets valid unwind data, but this code with only one body
Keith> generates invalid unwind data. David, what does your unwind
Keith> data look like after assembling this code?

Why do you insist on re-discovering old bugs? For the code in
question, the problem is caused by the jump-table generated for the
switch-statement. gcc 2.9x placed jump-tables in the text section,
which violates the ia64 ABI and also confuses the assembler.

--david