Set EF_ARM_HASENTRY if the start address is set.
authorNick Clifton <nickc@redhat.com>
Fri, 4 May 2001 08:32:21 +0000 (08:32 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 4 May 2001 08:32:21 +0000 (08:32 +0000)
bfd/ChangeLog
bfd/elf32-arm.h

index 3aa478f061f568bd5d044ac1034320312e891f81..5241b81bf4ca2db197fee7684ec7ac46fd2fde10 100644 (file)
@@ -1,3 +1,8 @@
+2001-05-04  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Set
+        EF_ARM_HASENTRY if the start address is set.
+
 2001-05-03  Nick Clifton  <nickc@cambridge.redhat.com>
 
        * targets.c (_bfd_target_vector_entries): Compute value based on
index 089d9d4bceb7c132d4e9090506f740cd89ed552c..013054adf993f76a4a55c1f065bba4106ff5bb16 100644 (file)
@@ -1019,6 +1019,18 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
   bfd_signed_vma                signed_addend;
   struct elf32_arm_link_hash_table * globals;
 
+  /* If the start address has been set, then set the EF_ARM_HASENTRY
+     flag.  Setting this more than once is redundant, but the cost is
+     not too high, and it keeps the code simple.
+     
+     The test is done  here, rather than somewhere else, because the
+     start address is only set just before the final link commences.
+
+     Note - if the user deliberately sets a start address of 0, the
+     flag will not be set.  */
+  if (bfd_get_start_address (output_bfd) != 0)
+    elf_elfheader (output_bfd)->e_flags |= EF_ARM_HASENTRY;
+      
   globals = elf32_arm_hash_table (info);
 
   dynobj = elf_hash_table (info)->dynobj;