--- /dev/null
+--- a/bfd/elf.c 2009-07-14 14:30:19.000000000 +0200
++++ b/bfd/elf.c 2009-07-14 21:11:42.000000000 +0200
+@@ -5362,12 +5449,16 @@
+ *pointer_to_map = map;
+ pointer_to_map = &map->next;
+
++#if 0
++ /* FIXME: It is wrong when section flags are changed. See
++ PR binutils/5233. */
+ if (matching_lma != map->p_paddr
+ && !map->includes_filehdr && !map->includes_phdrs)
+ /* There is some padding before the first section in the
+ segment. So, we must account for that in the output
+ segment's vma. */
+ map->p_vaddr_offset = matching_lma - map->p_paddr;
++#endif
+
+ free (sections);
+ continue;
+