This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: gas 2.10.91 from 20000920 cvs is broken under hpux 10.20
- To: alan at linuxcare dot com dot au (Alan Modra)
- Subject: Re: gas 2.10.91 from 20000920 cvs is broken under hpux 10.20
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Sun, 24 Sep 2000 13:53:36 -0400 (EDT)
- Cc: binutils at sourceware dot cygnus dot com, dhd at linuxcare dot com
> On Sat, 23 Sep 2000, John David Anglin wrote:
>
> > Look's like it fixes the problem, although I can't do a complete test now.
>
> Thanks. I'll commit the change, which goes back to the old SOM handling
> for external and weak syms, on the strength of your say-so. Incidentally,
> dhd's original patch was surrounded with #ifdef OBJ_ELF, but I changed
> it...
I looked at the code in hppa_fix_adjustable and hppa_force_relocation
and I think the fix is wrong. The external and weak checks should also
be done for SOM. Dynamic linking involving weak symbols under hpux is
not well tested. This is used with libstdc++ but currently building
a shared libstdc++ doesn't work well with the archive format of libgcc.
Possibly, the situation which caused the fault here is special--a function
recursively calling itself. However, I think the correct fix is for
relocation information to be output for the call. The assembler should
not use an assembler generated pc-relative offset for calling weak or
external symbols. It should only use this form for local symbols within
a function and as noted in a previous email this might present problems
for addil removal. I will try and check whether it is or not.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)