[parisc-linux] Weird compile problems

Alan Modra alan@linuxcare.com.au
Thu, 1 Feb 2001 14:59:45 +1100 (EST)


On Wed, 31 Jan 2001, Alan Modra wrote:

> On Wed, 31 Jan 2001, Alan Modra wrote:
> 
> [about pehc devel branch gcc]
> > r19 is being trashed.  It's a compiler bug.  One I added too. :-(
> 
> Now fixed.

It anyone has tried to compile glibc with the devel branch compiler,
you've probably discovered by now that ld.so is still crashing, but for a
different reason.  The global register allocation pass does the following
naughty thing:

[from elf/dl-load.c]
(insn 612 608 1626 (set (reg:SI 1 %r1)
        (plus:SI (reg:SI 19 %r19)
            (high:SI (symbol_ref/v/f:SI ("*.LC27"))))) 80 {*pa.md:2326}
(nil)
    (nil))

(insn 1626 612 621 (set (reg:SI 23 %r23 [242])
        (reg:SI 1 %r1)) 69 {*pa.md:2099} (nil)
    (nil))

[snip around 1480 lines, including calls]

(insn 1638 1527 988 (set (reg:SI 21 %r21)
        (mem/u:SI (lo_sum:SI (reg:SI 23 %r23 [242])
                (unspec:SI[ 
                        (symbol_ref/v/f:SI ("*.LC27"))
                    ]  0)) 0)) 82 {*pa.md:2352} (nil)
    (nil))

With the problem being that r23 is not a callee saved register, so it's
well and truly trashed by the time insn 1638 tries to use it.

-- 
Linuxcare.  Support for the Revolution.