Support R_SPARC_WDISP10 and R_SPARC_H34.
[external/binutils.git] / bfd / merge.c
index 180af26..aef3cf3 100644 (file)
@@ -307,9 +307,6 @@ sec_merge_emit (bfd *abfd, struct sec_merge_hash_entry *entry)
       len = -off & (entry->alignment - 1);
       if (len != 0)
        {
-         /* We should never have an entry with an alignment
-            greater than the section's alignment.  */
-         BFD_ASSERT (len <= (bfd_size_type) (1 << alignment_power));
          if (bfd_bwrite (pad, len, abfd) != len)
            goto err;
          off += len;
@@ -327,7 +324,6 @@ sec_merge_emit (bfd *abfd, struct sec_merge_hash_entry *entry)
   /* Trailing alignment needed?  */
   off = sec->size - off;
   if (off != 0
-      && alignment_power
       && bfd_bwrite (pad, off, abfd) != off)
     goto err;
 
@@ -352,6 +348,7 @@ _bfd_add_merge_section (bfd *abfd, void **psinfo, asection *sec,
   struct sec_merge_sec_info *secinfo;
   unsigned int align;
   bfd_size_type amt;
+  bfd_byte *contents;
 
   if ((abfd->flags & DYNAMIC) != 0
       || (sec->flags & SEC_MERGE) == 0)
@@ -436,8 +433,8 @@ _bfd_add_merge_section (bfd *abfd, void **psinfo, asection *sec,
   sec->rawsize = sec->size;
   if (sec->flags & SEC_STRINGS)
     memset (secinfo->contents + sec->size, 0, sec->entsize);
-  if (! bfd_get_section_contents (sec->owner, sec, secinfo->contents,
-                                 0, sec->size))
+  contents = secinfo->contents;
+  if (! bfd_get_full_section_contents (sec->owner, sec, &contents))
     goto error_return;
 
   return TRUE;