diff options
author | Jeff Law <law@redhat.com> | 1993-10-31 08:06:11 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1993-10-31 08:06:11 +0000 |
commit | 20b39b6f0590a15e228d69da89a3c7f5a2b900c4 (patch) | |
tree | 533dc0f024ea21daeb94395c992c6a0ce78e837d /gas/write.c | |
parent | e75acd689b12126432ca1ef8659d388475f12473 (diff) | |
download | gdb-20b39b6f0590a15e228d69da89a3c7f5a2b900c4.zip gdb-20b39b6f0590a15e228d69da89a3c7f5a2b900c4.tar.gz gdb-20b39b6f0590a15e228d69da89a3c7f5a2b900c4.tar.bz2 |
* write.c (relax_and_size_seg): Correct test to determine
if the section's size was rounded up.
Diffstat (limited to 'gas/write.c')
-rw-r--r-- | gas/write.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/gas/write.c b/gas/write.c index 30ab746..0b074d5 100644 --- a/gas/write.c +++ b/gas/write.c @@ -116,6 +116,7 @@ fix_new_internal (frag, where, size, add_symbol, sub_symbol, offset, pcrel, fixP->fx_pcrel_adjust = 0; fixP->fx_bit_fixP = 0; fixP->fx_addnumber = 0; + fixP->tc_fix_data = NULL; #ifdef TC_something fixP->fx_bsr = 0; @@ -441,13 +442,12 @@ relax_and_size_seg (abfd, sec, xxx) x = bfd_set_section_flags (abfd, sec, flags); assert (x == true); } - size = md_section_align (sec, size); - x = bfd_set_section_size (abfd, sec, size); + newsize = md_section_align (sec, size); + x = bfd_set_section_size (abfd, sec, newsize); assert (x == true); /* If the size had to be rounded up, add some padding in the last non-empty frag. */ - newsize = bfd_get_section_size_before_reloc (sec); assert (newsize >= size); if (size != newsize) { @@ -552,7 +552,10 @@ adjust_reloc_syms (abfd, sec, xxx) the PA. */ #ifdef tc_fix_adjustable if (! tc_fix_adjustable (fixp)) - continue; + { + fixp->fx_addsy->sy_used_in_reloc = 1; + continue; + } #endif /* If the section symbol isn't going to be output, the relocs @@ -1914,15 +1917,15 @@ fixup_segment (fixP, this_segment_type) segment_name (S_GET_SEGMENT (sub_symbolP)), S_GET_NAME (sub_symbolP), buf); } + } #else - else - { - seg_reloc_count++; - fixP->fx_addnumber = add_number; /* Remember value for emit_reloc */ - continue; - } /* if absolute */ + else + { + seg_reloc_count++; + fixP->fx_addnumber = add_number; /* Remember value for emit_reloc */ + continue; + } /* if absolute */ #endif - } } if (add_symbolP) |