[parisc-linux] Applications in 64 bits userspace
Carlos O'Donell
carlos@baldric.uwo.ca
Fri, 4 Apr 2003 13:08:41 -0500
John,
> I can't answer that. Presumably, HP funded the development. Possibly,
> they were considering using the GNU linker but then decided to go with
> a different port. I do most of my 64-bit testing now with the HPUX
> linker. There were some rough edges in using the HP linker with GCC
> a few months ago but these have been resolved.
I get random email from people who've seen my libc-alpha postings, and
they want to know how to fix their busted gcc (hppa2.0w) + HPUX linker
compiles... looks like floating point loads and stores with bad
relocations (the reason we disable fpregs in the rtld code for glibc).
> The HP linker is not compliant with the sysv ELF ABI in its handling
> of weak symbols. Undefined weak symbols are supposed to resolve
> to a value of 0, and the linker is not supposed to search archive
> libraries for undefined weaks. I tried hacking GNU ld to see if
> this could be fixed but this isn't possible since the dynamic loader
> has the same behavior. Basically, weak symbols appear to behave
> like secondary definition symbols with the SOM runtime. The lack
> of proper weak support impacts GCC thread support.
Ick! Okay, I see why the initial intent to transition toolchains was
made. Though it still probably kicks our arse in terms of performance.
> I presume you are talking about the implementation for lazy linking.
> I know the ia64 implementation of function descriptors differs from
> what is done for the 32-bit hppa ports.
See Lu's patch at:
http://sources.redhat.com/ml/libc-alpha/2003-04/msg00048.html
It's a unification effort to try get arches that use func. desc. onto
the same page... hopefully lockless lookups and lazy linking :)
> Ok. I should note that the current 64-bit GNU ld doesn't know how
> to do a true static link.
How so? -static and -nostdlib and add all the bits yourself?
> I certainly agree with that plan. 64-bit code is always going to
> be slower than 32-bit code, so it shouldn't be used unless really
> needed.
It would still be a nice treat to get more testing on the 64-bit
compiler, and be able to run bigger apps on the bigger PARISC boxes once
they become available :)
Though, yes, the current plan is, without fail, in the order I feel like
fixing them today:
- make -k check passes
- function descriptor fixes
- TLS support
- Static 64-bit userspace
c.