[parisc-linux] Applications in 64 bits userspace
Carlos O'Donell
carlos@baldric.uwo.ca
Fri, 4 Apr 2003 17:07:45 -0500
> This sounds like a configuration mixup but I would have to see
> a real bug report to be sure. Regarding disabling fpregs, this
> might not be a good idea.
It's currently the only solution for getting the rtld code working, since
the floating point code was trying to load a non-existant linkage table pointer...
> Integer multiplication uses the xmpyu
> instruction. There is millicode support for 32-bit multiplication
> but not for 64-bit multiplication. On the 64-bit port, loop
> unrolling can cause a multiply instruction to emitted after
> virtual registers are instantiated. If fpregs are disabled,
> the multiply requires a libcall. Emitting a libcall, requires
> setting the arg pointer using the virtual outgoing args register.
> There is a small chance that we might not have reserved enough
> space for the outgoing arguments when this is done after virtual
> register instantiation. You need -nostdlib when linking as
> various functions in libgcc uses the xmpyu instruction.
I'll enable it again for the 64-bit static port and see what happens :)
> > How so? -static and -nostdlib and add all the bits yourself?
>
> No. The dynamic loader is still required to resolve some special
> symbols. I also think the file format is not quite right for
> a static executable. I'm sure that it would be possible to generate
> a truly static binary but I'm not sure how much work is involved.
Special symbols?
c.