[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.