* config/atof-ieee.c (gen_to_words): Correctly round a
[deliverable/binutils-gdb.git] / bfd / elf-bfd.h
index 67a987511ed0ff0d2c3a456a59561ed0e1578f26..82ffe2add97e3d067baaa66c85470111db84768f 100644 (file)
@@ -98,8 +98,8 @@ struct elf_link_hash_entry
   /* If this symbol requires an entry in the global offset table, the
      processor specific backend uses this field to track usage and
      final offset.  We use a union and two names primarily to document
-     the intent of any particular piece of code.  The field should be 
-     used as a count until size_dynamic_sections, at which point the 
+     the intent of any particular piece of code.  The field should be
+     used as a count until size_dynamic_sections, at which point the
      contents of the .got is fixed.  Afterward, if this field is -1,
      then the symbol does not require a global offset table entry.  */
   union
@@ -133,9 +133,11 @@ struct elf_link_hash_entry
     struct bfd_elf_version_tree *vertree;
   } verinfo;
 
-  /* Virtual table entry use information.  This array is of size
-     size/sizeof(target_void_pointer), and indexed via
-     offset/sizeof(void*) as well.  */
+  /* Virtual table entry use information.  This array is nominally of size
+     size/sizeof(target_void_pointer), though we have to be able to assume
+     and track a size while the symbol is still undefined.  It is indexed
+     via offset/sizeof(target_void_pointer).  */
+  size_t vtable_entries_size;
   boolean *vtable_entries_used;
 
   /* Virtual table derivation info.  */
@@ -147,6 +149,9 @@ struct elf_link_hash_entry
   /* Symbol st_other value.  */
   unsigned char other;
 
+  /* Hash value of the name computed using the ELF hash function.  */
+  unsigned long elf_hash_value;
+
   /* Some flags; legal values follow.  */
   unsigned short elf_link_hash_flags;
   /* Symbol is referenced by a non-shared object.  */
@@ -157,20 +162,22 @@ struct elf_link_hash_entry
 #define ELF_LINK_HASH_REF_DYNAMIC 04
   /* Symbol is defined by a shared object.  */
 #define ELF_LINK_HASH_DEF_DYNAMIC 010
+  /* Symbol has a non-weak reference from a non-shared object.  */
+#define ELF_LINK_HASH_REF_REGULAR_NONWEAK 020
   /* Dynamic symbol has been adjustd.  */
-#define ELF_LINK_HASH_DYNAMIC_ADJUSTED 020
+#define ELF_LINK_HASH_DYNAMIC_ADJUSTED 040
   /* Symbol needs a copy reloc.  */
-#define ELF_LINK_HASH_NEEDS_COPY 040
+#define ELF_LINK_HASH_NEEDS_COPY 0100
   /* Symbol needs a procedure linkage table entry.  */
-#define ELF_LINK_HASH_NEEDS_PLT 0100
+#define ELF_LINK_HASH_NEEDS_PLT 0200
   /* Symbol appears in a non-ELF input file.  */
-#define ELF_LINK_NON_ELF 0200
+#define ELF_LINK_NON_ELF 0400
   /* Symbol should be marked as hidden in the version information.  */
-#define ELF_LINK_HIDDEN 0400
+#define ELF_LINK_HIDDEN 01000
   /* Symbol was forced to local scope due to a version script file.  */
-#define ELF_LINK_FORCED_LOCAL 01000
+#define ELF_LINK_FORCED_LOCAL 02000
   /* Symbol was marked during garbage collection.  */
-#define ELF_LINK_HASH_MARK 02000
+#define ELF_LINK_HASH_MARK 04000
 };
 
 /* ELF linker hash table.  */
@@ -315,7 +322,7 @@ struct elf_backend_data
 
    /* A function to set the type of the info field.  Processor-specific
      types should be handled here. */
-  int (*elf_backend_get_symbol_type) PARAMS (( Elf_Internal_Sym *)); 
+  int (*elf_backend_get_symbol_type) PARAMS (( Elf_Internal_Sym *, int)); 
  
   /* A function to do additional processing on the ELF section header
      just before writing it out.  This is used to set the flags and
@@ -647,11 +654,22 @@ struct elf_obj_tdata
   unsigned int strtab_section, dynsymtab_section;
   unsigned int dynversym_section, dynverdef_section, dynverref_section;
   file_ptr next_file_pos;
+#if 0
+  /* we don't need these inside bfd anymore, and I think
+     these weren't used outside bfd. */
   void *prstatus;                      /* The raw /proc prstatus structure */
   void *prpsinfo;                      /* The raw /proc prpsinfo structure */
+#endif
   bfd_vma gp;                          /* The gp value (MIPS only, for now) */
   unsigned int gp_size;                        /* The gp size (MIPS only, for now) */
 
+  /* Information grabbed from an elf core file. */
+  int core_signal;
+  int core_pid;
+  int core_lwpid;
+  char* core_program;
+  char* core_command;
+
   /* This is set to true if the object was created by the backend
      linker.  */
   boolean linker;
@@ -668,7 +686,7 @@ struct elf_obj_tdata
      should be used as a count until size_dynamic_sections, at which
      point the contents of the .got is fixed.  Afterward, if an entry
      is -1, then the symbol does not require a global offset table entry. */
-  union 
+  union
     {
       bfd_signed_vma *refcounts;
       bfd_vma *offsets;
@@ -707,6 +725,9 @@ struct elf_obj_tdata
      find_nearest_line.  */
   struct mips_elf_find_line *find_line_info;
 
+  /* A place to stash dwarf1 info for this bfd. */
+  struct dwarf1_debug *dwarf1_find_line_info;
+
   /* A place to stash dwarf2 info for this bfd. */
   struct dwarf2_debug *dwarf2_find_line_info;
 
@@ -936,6 +957,9 @@ boolean _bfd_elf_make_linker_section_rela
           elf_linker_section_t *lsect,
           int alignment));
 
+boolean _bfd_elfcore_section_from_phdr
+  PARAMS ((bfd *, Elf_Internal_Phdr *, int));
+
 extern const bfd_target *bfd_elf32_object_p PARAMS ((bfd *));
 extern const bfd_target *bfd_elf32_core_file_p PARAMS ((bfd *));
 extern char *bfd_elf32_core_file_failing_command PARAMS ((bfd *));
This page took 0.0263 seconds and 4 git commands to generate.