]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Accept a physicall address of 0 as valid in a program header
authorNick Clifton <nickc@redhat.com>
Wed, 13 Feb 2002 10:20:59 +0000 (10:20 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 13 Feb 2002 10:20:59 +0000 (10:20 +0000)
bfd/ChangeLog
bfd/elf.c

index 5bdb9855b0d37c0d8b7d98d6d8612a8dafa973f3..c4ee9c55ad0a9ca9e9ed4f0d882259cbe6f814e4 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-13  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Do not insist on
+        non-zero physical addresses when adjusting the LMAs of new
+        sections.
+
 2002-02-12  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * elf-hppa.h (elf_hppa_reloc_final_type): New function stripped
index da4625842db75a1b8335412b15d837b1de8b908a..519e71d5999a4c8441774d35174a5c4cf88c1684 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -652,10 +652,15 @@ _bfd_elf_make_section_from_shdr (abfd, hdr, name)
                 offset plus size lies within the segment's memory
                 span and, if the section is loaded, the extent of the
                 loaded data lies within the extent of the segment.  
-                If the p_paddr field is not set, we don't alter the 
-                LMA.  */
+
+                Note - we used to check the p_paddr field as well, and
+                refuse to set the LMA if it was 0.  This is wrong
+                though as a perfectly valid, initialised segment can
+                have a p_paddr of zero.  Some architectures, eg ARM,
+                place special significance one the address 0 and
+                executables need to be able to have a segment which
+                covers this address.  */
              if (phdr->p_type == PT_LOAD
-                 && phdr->p_paddr
                  && (bfd_vma) hdr->sh_offset >= phdr->p_offset
                  && (hdr->sh_offset + hdr->sh_size
                      <= phdr->p_offset + phdr->p_memsz)