This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 1/4] MIPS/GAS: Fix equated symbols in relaxation
"Maciej W. Rozycki" <macro@codesourcery.com> writes:
>> Index: gas/config/tc-mips.c
>> ===================================================================
>> RCS file: /cvs/src/src/gas/config/tc-mips.c,v
>> retrieving revision 1.419
>> diff -u -p -r1.419 tc-mips.c
>> --- gas/config/tc-mips.c 28 Jun 2010 14:06:57 -0000 1.419
>> +++ gas/config/tc-mips.c 28 Jul 2010 19:39:34 -0000
>> @@ -14571,8 +14571,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNU
>> ext = FALSE;
>> }
>>
>> - resolve_symbol_value (fragp->fr_symbol);
>> - val = S_GET_VALUE (fragp->fr_symbol);
>> + val = resolve_symbol_value (fragp->fr_symbol);
>> if (op->pcrel)
>> {
>> addressT addr;
>
> this program:
>
> .text
> .set mips16
> baz:
> nop
> .eqv bar, foo
> .eqv foo, bar
> b bar
>
> assembles to this:
>
> Disassembly of section .text:
>
> 00000000 <baz>:
> 0: 6500 nop
> 2: 17fe b 0 <baz>
>
> (no relocations) while it should yield this:
>
> beqv.s: Assembler messages:
> beqv.s:7: Error: symbol definition loop encountered at `foo'
Hmm, how are you testing? I get the expected error with a
mipsisa64-elfoabi toolchain.
Richard