PATCH: PR ld/3314: ELF linker aligns empty section
H. J. Lu
hjl@lucon.org
Fri Oct 6 13:39:00 GMT 2006
When we are outputing an empty loadable section, we consider it not
loadable. But we still align it at page boundary. This patch fixes
it.
H.J.
----
2006-10-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/3314
* elf.c (assign_file_positions_for_non_load_sections): Don't
page align empty SHF_ALLOC sections.
--- bfd/elf.c.empty 2006-09-29 09:00:21.000000000 -0700
+++ bfd/elf.c 2006-10-06 06:23:25.000000000 -0700
@@ -4661,18 +4661,22 @@ assign_file_positions_for_non_load_secti
else if ((hdr->sh_flags & SHF_ALLOC) != 0)
{
if (hdr->sh_size != 0)
- ((*_bfd_error_handler)
- (_("%B: warning: allocated section `%s' not in segment"),
+ {
+ /* We don't need to adjust section offset for empty
+ sections. */
+ ((*_bfd_error_handler)
+ (_("%B: warning: allocated section `%s' not in segment"),
abfd,
(hdr->bfd_section == NULL
- ? "*unknown*"
+ ? "*unknown*"
: hdr->bfd_section->name)));
- if ((abfd->flags & D_PAGED) != 0)
- off += vma_page_aligned_bias (hdr->sh_addr, off,
- bed->maxpagesize);
- else
- off += vma_page_aligned_bias (hdr->sh_addr, off,
- hdr->sh_addralign);
+ if ((abfd->flags & D_PAGED) != 0)
+ off += vma_page_aligned_bias (hdr->sh_addr, off,
+ bed->maxpagesize);
+ else
+ off += vma_page_aligned_bias (hdr->sh_addr, off,
+ hdr->sh_addralign);
+ }
off = _bfd_elf_assign_file_position_for_section (hdr, off,
FALSE);
}
More information about the Binutils
mailing list