This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]