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]
Other format: [Raw text]

Re: PATCH: IA64: Don't relax branch in .init/.fini sections.


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

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
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.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com


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