aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf-eh-frame.c8
-rw-r--r--bfd/elflink.c7
-rw-r--r--bfd/merge.c1
4 files changed, 23 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 784e45a..be52aa6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,12 @@
2009-08-11 Alan Modra <amodra@bigpond.net.au>
+ * elflink.c: Add FIXMEs for some places that require octets_per_byte
+ adjustments.
+ * elf-eh-frame.c: Likewise.
+ * merge.c: Likewise.
+
+2009-08-11 Alan Modra <amodra@bigpond.net.au>
+
* configure.in: Remove elf-ifunc.lo from common ELF files. Add
to x86 and x86_64 configurations.
* configure: Regenerate.
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 2dbe63f..17c01b2 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -537,18 +537,21 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
local_cies = bfd_zmalloc (num_cies * sizeof (*local_cies));
REQUIRE (local_cies);
+ /* FIXME: octets_per_byte. */
#define ENSURE_NO_RELOCS(buf) \
REQUIRE (!(cookie->rel < cookie->relend \
&& (cookie->rel->r_offset \
< (bfd_size_type) ((buf) - ehbuf)) \
&& cookie->rel->r_info != 0))
+ /* FIXME: octets_per_byte. */
#define SKIP_RELOCS(buf) \
while (cookie->rel < cookie->relend \
&& (cookie->rel->r_offset \
< (bfd_size_type) ((buf) - ehbuf))) \
cookie->rel++
+ /* FIXME: octets_per_byte. */
#define GET_RELOC(buf) \
((cookie->rel < cookie->relend \
&& (cookie->rel->r_offset \
@@ -911,6 +914,7 @@ mark_entry (struct bfd_link_info *info, asection *sec,
struct eh_cie_fde *ent, elf_gc_mark_hook_fn gc_mark_hook,
struct elf_reloc_cookie *cookie)
{
+ /* FIXME: octets_per_byte. */
for (cookie->rel = cookie->rels + ent->reloc_index;
cookie->rel < cookie->relend
&& cookie->rel->r_offset < ent->offset + ent->size;
@@ -1099,6 +1103,7 @@ _bfd_elf_discard_section_eh_frame
else if (!ent->cie)
{
cookie->rel = cookie->rels + ent->reloc_index;
+ /* FIXME: octets_per_byte. */
BFD_ASSERT (cookie->rel < cookie->relend
&& cookie->rel->r_offset == ent->offset + 8);
if (!(*reloc_symbol_deleted_p) (ent->offset + 8, cookie))
@@ -1323,6 +1328,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
struct eh_cie_fde *ent;
if (sec->sec_info_type != ELF_INFO_TYPE_EH_FRAME)
+ /* FIXME: octets_per_byte. */
return bfd_set_section_contents (abfd, sec->output_section, contents,
sec->output_offset, sec->size);
@@ -1611,6 +1617,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
if ((sec->size % ptr_size) != 0)
abort ();
+ /* FIXME: octets_per_byte. */
return bfd_set_section_contents (abfd, sec->output_section,
contents, (file_ptr) sec->output_offset,
sec->size);
@@ -1722,6 +1729,7 @@ _bfd_elf_write_section_eh_frame_hdr (bfd *abfd, struct bfd_link_info *info)
}
}
+ /* FIXME: octets_per_byte. */
retval = bfd_set_section_contents (abfd, sec->output_section,
contents, (file_ptr) sec->output_offset,
sec->size);
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 5818912..d6534f7 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -7762,6 +7762,7 @@ bfd_elf_perform_complex_relocation (bfd *input_bfd,
else
shift = (8 * wordsz) - (start + len);
+ /* FIXME: octets_per_byte. */
x = get_value (wordsz, chunksz, input_bfd, contents + rel->r_offset);
#ifdef DEBUG
@@ -7793,6 +7794,7 @@ bfd_elf_perform_complex_relocation (bfd *input_bfd,
relocation, (mask << shift),
((relocation & mask) << shift), x);
#endif
+ /* FIXME: octets_per_byte. */
put_value (wordsz, chunksz, input_bfd, x, contents + rel->r_offset);
return r;
}
@@ -8132,6 +8134,7 @@ elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec)
}
erel = o->contents;
erelend = o->contents + o->size;
+ /* FIXME: octets_per_byte. */
p = sort + o->output_offset / ext_size * sort_elt;
while (erel < erelend)
@@ -8176,6 +8179,7 @@ elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec)
erel = o->contents;
erelend = o->contents + o->size;
+ /* FIXME: octets_per_byte. */
p = sort + o->output_offset / ext_size * sort_elt;
while (erel < erelend)
{
@@ -9697,6 +9701,7 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
break;
default:
{
+ /* FIXME: octets_per_byte. */
if (! (o->flags & SEC_EXCLUDE)
&& ! (o->output_section->flags & SEC_NEVER_LOAD)
&& ! bfd_set_section_contents (output_bfd, o->output_section,
@@ -10020,6 +10025,7 @@ elf_fixup_link_order (bfd *abfd, asection *o)
offset &= ~(bfd_vma) 0 << s->alignment_power;
s->output_offset = offset;
sections[n]->offset = offset;
+ /* FIXME: octets_per_byte. */
offset += sections[n]->size;
}
@@ -10999,6 +11005,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
!= SHT_STRTAB)
|| strcmp (bfd_get_section_name (abfd, o), ".dynstr") != 0)
{
+ /* FIXME: octets_per_byte. */
if (! bfd_set_section_contents (abfd, o->output_section,
o->contents,
(file_ptr) o->output_offset,
diff --git a/bfd/merge.c b/bfd/merge.c
index de1e951..df49cbe 100644
--- a/bfd/merge.c
+++ b/bfd/merge.c
@@ -792,6 +792,7 @@ _bfd_write_merged_section (bfd *output_bfd, asection *sec, void *psecinfo)
if (secinfo->first_str == NULL)
return TRUE;
+ /* FIXME: octets_per_byte. */
pos = sec->output_section->filepos + sec->output_offset;
if (bfd_seek (output_bfd, pos, SEEK_SET) != 0)
return FALSE;