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

Jim Wilson wilson@specifixinc.com
Tue Jun 29 23:49:00 GMT 2004


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



More information about the Binutils mailing list