This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: e: PATCH doc/install.texi (hppa*-hp-hpux11) PHSS_26559 Linker pat
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: rdbrown at mira dot net (Rodney Brown)
- Cc: dave dot anglin at nrc dot ca, gcc-patches at gcc dot gnu dot org
- Date: Sat, 25 Jan 2003 12:05:46 -0500 (EST)
- Subject: Re: e: PATCH doc/install.texi (hppa*-hp-hpux11) PHSS_26559 Linker pat
> bash-2.05b$ what /usr/ccs/bin/ld
> /usr/ccs/bin/ld:
> HP aC++ B3910B A.03.27 Classic Iostream Library
> HP aC++ B3910B A.03.27 Language Support Library
> ld_msgs.cat: $Revision: 1.85 $
> 92453-07 linker command s800.sgs ld PA64 B.11.25 REL 001129
> bash-2.05b$ sum -r /usr/ccs/bin/ld
> 04190 1160 /usr/ccs/bin/ld
>
> This is the same box that is giving the
>
> /usr/lib/dld.sl: Unresolved symbol: pthread_once (code) from
> /usr/local/lib/libgcc_s.sl
> FAIL: g++.dg/bprob/g++-bprob-1.C execution, -g -fprofile-arcs
The HP "weak" support doesn't allow undefined weak symbols, both using
the 32-bit sdef support and the 64-bit implementation. The latter is
a violation System V ABI (ELF). However, given this, the only thread
implementations that will work under HP-UX 11.X are multilib ones
similar to that used under HP-UX 10.X
You have a patch installed to use threads under HP-UX 11 installed,
right? I set GTHREAD_USE_WEAK and v3 variant so that pragma weak
isn't used in gthr-dce.h and gthr-posix.h. So, the definitions in
libstdc++ should be strong.
> fails on all C++ & libstdc++ execution tests. I still haven't sorted
> that out - I'd
Typically, ld generates a segmentation fault linking libstdc++.sl if
sdef support doesn't work. If the errors that you see are similar
to the one above, then this is an issue with your use of threads.
> half hoped the ld patch would wipe it out. Since the box is for gcc
> testing let me
> know what you'd like on it. It's running hppa2.0n-hp-hpux11.00 - the
> 64-bit OS
> would let me bootstrap both 32 & 64 bit.
I don't have any experience with hppa2.0n-hp-hpux11.00. This is a
32-bit kernel. I suggest installing the latest linker patch, or if
you have and SOM sdef doesn't work, let me know and I will try to
find a way to disable it on this OS. This is really a HP bug but
it's very difficult to get HP to fix bugs unless you have a service
contract. You can disable SOM weak support by setting TARGET_SOM_SDEF
to 0 in pa-hpux11.h.
You may not find the ability to run 64-bit apps very important.
Typically, they are 5-10% slower than 32-bit. However, it the
service support for hppa2.0n-hp-hpux11.00 is lacking, you might
consider changing to hppa2.0w-hp-hpux11 if your hardware will
support it.
The weak support is very important for the general usability of g++
on 32-bit HP-UX. It allows for implicit template instantiation which
is used in many large C++ applications. Without it, these packages
are nearly impossible to build. For example, the patch has allowed
me to build LyX.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)