summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1993-10-31 08:06:11 +0000
committerJeff Law <law@redhat.com>1993-10-31 08:06:11 +0000
commit20b39b6f0590a15e228d69da89a3c7f5a2b900c4 (patch)
tree533dc0f024ea21daeb94395c992c6a0ce78e837d
parente75acd689b12126432ca1ef8659d388475f12473 (diff)
downloadppe42-binutils-20b39b6f0590a15e228d69da89a3c7f5a2b900c4.tar.gz
ppe42-binutils-20b39b6f0590a15e228d69da89a3c7f5a2b900c4.zip
* write.c (relax_and_size_seg): Correct test to determine
if the section's size was rounded up.
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/write.c25
2 files changed, 17 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8d60593ec3..61905dd092 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,8 @@
Sun Oct 31 00:36:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
+ * write.c (relax_and_size_seg): Correct test to determine if
+ the section's size was rounded up.
+
* config/obj-som.h (obj_set_symbol_type): Define a hook so GAS
can properly set all the SOM symbol types.
* config/tc-hppa.c (pa_symbol_type): New enum to represent the
diff --git a/gas/write.c b/gas/write.c
index 30ab74611f..0b074d59b2 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)
OpenPOWER on IntegriCloud