--- /dev/null
+*** ../binutils-2.20.51.0.10.orig/bfd/merge.c 2010-08-20 12:19:33.000000000 +0100
+--- bfd/merge.c 2010-08-20 12:18:01.000000000 +0100
+*************** sec_merge_emit (bfd *abfd, struct sec_me
+*** 307,312 ****
+--- 307,315 ----
+ 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;
+*************** sec_merge_emit (bfd *abfd, struct sec_me
+*** 324,329 ****
+--- 327,333 ----
+ /* Trailing alignment needed? */
+ off = sec->size - off;
+ if (off != 0
++ && alignment_power
+ && bfd_bwrite (pad, off, abfd) != off)
+ goto err;
+