This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: PATCH: IA64: Don't relax branch in .init/.fini sections.
On Tue, Jun 29, 2004 at 04:49:05PM -0700, Jim Wilson wrote:
> On Sat, 2004-06-26 at 22:53, H. J. Lu wrote:
> > * elfxx-ia64.c (elfNN_ia64_relax_section): Don't relax branch
> > in .init/.fini sections.
>
> This looks OK to me.
>
> You suggest using brl. The gcc startup files deliberately use indirect
I will change that.
> branches to avoid this problem. We load the function address into a
> register, and then branch on the register. This also avoids use of brl
> which is a slow on an Itanium1. If we can ignore Itanium1, then we can
> simplify the gcc startup code a little bit.
I think we can do it for gcc 3.4 and above.
>
> The error message doesn't give any hint about which instruction can't be
> relocated. Which means if you have lots of them you are screwed. This
I will see what I can do.
> might be rare enough that we don't have to worry about it. You didn't
> give any info on how the problem was detected, so I can't tell if this
> matters.
It came from icc. When I used icc to build a big application, linker
failed to issue an error. I got run-time failure instead.
Thanks.
H.J.