This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


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

Re: gas 2.10.91 from 20000920 cvs is broken under hpux 10.20


> 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)

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