2005-05-02 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 2 May 2005 14:00:16 +0000 (14:00 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 2 May 2005 14:00:16 +0000 (14:00 +0000)
* elf.c (_bfd_elf_new_section_hook): Don't call
_bfd_elf_get_sec_type_attr on sections from input files.

bfd/ChangeLog
bfd/elf.c

index e9925a6..f4c8450 100644 (file)
@@ -1,5 +1,10 @@
 2005-05-02  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * elf.c (_bfd_elf_new_section_hook): Don't call
+       _bfd_elf_get_sec_type_attr on sections from input files.
+
+2005-05-02  H.J. Lu  <hongjiu.lu@intel.com>
+
        * merge.c (sec_merge_init): Call bfd_hash_table_init_n with
        hash table size 16699 instead of bfd_hash_table_init.
 
index ba66cd4..2af5a89 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -2245,12 +2245,17 @@ _bfd_elf_new_section_hook (bfd *abfd, asection *sec)
       sec->used_by_bfd = sdata;
     }
 
-  elf_section_type (sec) = SHT_NULL;
-  ssect = _bfd_elf_get_sec_type_attr (abfd, sec->name);
-  if (ssect != NULL)
+  /* When we read a file, we don't need section type and flags.
+     They will be overridden in _bfd_elf_make_section_from_shdr
+     anyway.  */
+  if (abfd->direction != read_direction)
     {
-      elf_section_type (sec) = ssect->type;
-      elf_section_flags (sec) = ssect->attr;
+      ssect = _bfd_elf_get_sec_type_attr (abfd, sec->name);
+      if (ssect != NULL)
+       {
+         elf_section_type (sec) = ssect->type;
+         elf_section_flags (sec) = ssect->attr;
+       }
     }
 
   /* Indicate whether or not this section should use RELA relocations.  */