This is the mail archive of the
mailing list for the GCC project.
Re: Revised patch to remove integer output macros
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc-patches at gcc dot gnu dot org
- Cc: rth at redhat dot com, law at redhat dot com, rsandifo at redhat dot com
- Date: Sun, 16 Dec 2001 20:20:16 -0500 (EST)
- Subject: 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.
J. David Anglin email@example.com
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)