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: IA-32 gas _GLOBAL_OFFSET_TABLE_ handling bugs


On Wed, Jul 31, 2002 at 06:31:15PM -0700, Roland McGrath wrote:
> Actually, the case generated by GCC that bit me does not use `.' at all.
> It looks like this:
> 
> 	movl	$.L30, %eax
> .L30:
> 	addl	$_GLOBAL_OFFSET_TABLE_, %eax

Eep.  We really have dug a pit for ourselves with this syntax.  Does
this work on other assemblers?  Can gcc be fixed to not emit the
above?

This is really taking "do what I mean rather than what I say" to new
heights.  Presumably, the magic _GLOBAL_OFFSET_TABLE_ transformations
should only happen on "add" or "lea" type instructions, so that

 mov $_GLOBAL_OFFSET_TABLE_, %eax

does the right thing.

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


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