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: Revised patch to remove integer output macros


> The problem hits hardest in the pa case because it has two different
> word sizes.  The pseudo-op for each size is always the same, it's just
> that we sometimes need to print "P%" in front of a label.

In the last couple of days, I have been looking at problem wrt weak
references on the PA.  These are used in crtbegin and would be very
useful for a better thread implementation.  When "P%" is used, dld.sl
treats the plabel as a data (GOT) reference.  These require immediate
binding and thus cause an abort when a weak reference is undefined
(i.e., "if (weak_reference)" doesn't work as expected).  It looks
as if we need a `Q' fixup instead for weak references.  These provide
a procedure (PLT) relocation.  I think this would resolve the problem
with dld.sl aborting on an undefined weak reference.  Unfortunately,
the GNU assembler doesn't support Q relocations at this time and the
HP assembler is missing other stuff.

I just wanted to make you aware that it may be necessary in the future
to add "P%" or "Q%" in front of a label.

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]