[PATCH 1/4] MIPS/GAS: Fix equated symbols in relaxation
Maciej W. Rozycki
macro@codesourcery.com
Tue Jul 27 19:49:00 GMT 2010
More information about the Binutils mailing list
Tue Jul 27 19:49:00 GMT 2010
- Previous message (by thread): [PATCH 1/4] MIPS/GAS: Fix equated symbols in relaxation
- Next message (by thread): [PATCH 1/4] MIPS/GAS: Fix equated symbols in relaxation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, 27 Jul 2010, Richard Sandiford wrote: > > Equated symbols (defined with .eqv) are not yet fully resolved by the > > time relaxation is made. As a result, if used in a relaxed expression, > > they cause a failure as follows: > > > > branch-self.s:30: Error: attempt to get value of unresolved symbol `fnord' > > > > The fix is to manually walk the chain of symbols; we handle additive > > expressions involving constant (positive or negative) addends here only > > like elsewhere. > > > > 2010-07-26 Maciej W. Rozycki <macro@codesourcery.com> > > > > gas/ > > * config/tc-mips.c: Include "struc-symbol.h". > > (md_convert_frag): Resolve equated symbols manually. > > Can you explain in more detail why the equated symbol handling > in resolve_symbol_value doesn't do the right thing? finalize_syms isn't set yet and hence resolve_symbol_value() won't make the final resolution of the symbol -- see write_object_file(). We get here from relax_seg() which is before finalize_syms is possibly set at the earliest. Try to assemble this program: .text .set mips16 foo: .eqv bar, foo b bar to trigger it. Maciej
- Previous message (by thread): [PATCH 1/4] MIPS/GAS: Fix equated symbols in relaxation
- Next message (by thread): [PATCH 1/4] MIPS/GAS: Fix equated symbols in relaxation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list