diff options
Diffstat (limited to 'contrib/binutils/gas/config/obj-ieee.c')
-rw-r--r-- | contrib/binutils/gas/config/obj-ieee.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/contrib/binutils/gas/config/obj-ieee.c b/contrib/binutils/gas/config/obj-ieee.c index 521a0d7..505bb35 100644 --- a/contrib/binutils/gas/config/obj-ieee.c +++ b/contrib/binutils/gas/config/obj-ieee.c @@ -292,7 +292,7 @@ do_symbols (abfd) { ptr->sy_symbol.sy.section = (asection *) (segment_info[ptr->sy_symbol.seg].user_stuff); - S_SET_VALUE (ptr, S_GET_VALUE (ptr) + ptr->sy_frag->fr_address); + S_SET_VALUE (ptr, S_GET_VALUE (ptr)); if (ptr->sy_symbol.sy.flags == 0) ptr->sy_symbol.sy.flags = BSF_LOCAL; } @@ -558,6 +558,9 @@ write_object_file () for (i = SEG_E0; i < SEG_UNKNOWN; i++) relax_segment (segment_info[i].frag_root, i); + /* Relaxation has completed. Freeze all syms. */ + finalize_syms = 1; + /* Now the addresses of the frags are correct within the segment. */ bfd_as_write_hook (); |