* common.h (EM_V850): V850s now supplied by Renesas.
[deliverable/binutils-gdb.git] / include / bfdlink.h
index d22519a1d11dd115cf68c94878382b3c4178eee0..0d6e9f8aeb0d0b775f6f2cd9cc307ccf76b77f97 100644 (file)
@@ -1,6 +1,6 @@
 /* bfdlink.h -- header file for BFD link routines
    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
    Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -67,7 +67,7 @@ enum bfd_link_hash_type
   bfd_link_hash_warning                /* Like indirect, but warn if referenced.  */
 };
 
-enum bfd_link_common_skip_ar_aymbols
+enum bfd_link_common_skip_ar_symbols
 {
   bfd_link_common_skip_none,
   bfd_link_common_skip_text,
@@ -75,6 +75,12 @@ enum bfd_link_common_skip_ar_aymbols
   bfd_link_common_skip_all
 };
 
+struct bfd_link_hash_common_entry
+  {
+    unsigned int alignment_power;      /* Alignment.  */
+    asection *section;         /* Symbol section.  */
+  };
+
 /* The linking routines use a hash table which uses this structure for
    its elements.  */
 
@@ -143,11 +149,7 @@ struct bfd_link_hash_entry
             directly because we don't want to increase the size of
             the union; this structure is a major space user in the
             linker.  */
-         struct bfd_link_hash_common_entry
-           {
-             unsigned int alignment_power;     /* Alignment.  */
-             asection *section;                /* Symbol section.  */
-           } *p;
+         struct bfd_link_hash_common_entry *p;
          bfd_size_type size;   /* Common symbol size.  */
        } c;
     } u;
@@ -198,6 +200,9 @@ extern void bfd_link_add_undef
 extern void bfd_link_repair_undef_list
   (struct bfd_link_hash_table *table);
 
+/* Read symbols and cache symbol pointer array in outsymbols.  */
+extern bfd_boolean bfd_generic_link_read_symbols (bfd *);
+
 struct bfd_sym_chain
 {
   struct bfd_sym_chain *next;
@@ -319,6 +324,9 @@ struct bfd_link_info
   /* TRUE if we should warn when adding a DT_TEXTREL to a shared object.  */
   unsigned int warn_shared_textrel: 1;
 
+  /* TRUE if we should warn alternate ELF machine code.  */
+  unsigned int warn_alternate_em: 1;
+
   /* TRUE if unreferenced sections should be removed.  */
   unsigned int gc_sections: 1;
 
@@ -346,9 +354,6 @@ struct bfd_link_info
   /* Non-NULL if .note.gnu.build-id section should be created.  */
   char *emit_note_gnu_build_id;
 
-  /* TRUE if putting code into separate segment.  */
-  unsigned int sep_code: 1;
-
   /* What to do with unresolved symbols in an object file.
      When producing executables the default is GENERATE_ERROR.
      When producing shared libraries the default is IGNORE.  The
@@ -366,9 +371,9 @@ struct bfd_link_info
   /* Which local symbols to discard.  */
   enum bfd_link_discard discard;
 
-  /* Criteria for skipping symbols when detemining
+  /* Criteria for skipping symbols when determining
      whether to include an object from an archive. */
-  enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
+  enum bfd_link_common_skip_ar_symbols common_skip_ar_symbols;
 
   /* Char that may appear as the first char of a symbol, but should be
      skipped (like symbol_leading_char) when looking up symbols in
@@ -476,9 +481,11 @@ struct bfd_link_callbacks
   /* A function which is called when an object is added from an
      archive.  ABFD is the archive element being added.  NAME is the
      name of the symbol which caused the archive element to be pulled
-     in.  */
+     in.  This function may set *SUBSBFD to point to an alternative
+     BFD from which symbols should in fact be added in place of the
+     original BFD's symbols.  */
   bfd_boolean (*add_archive_element)
-    (struct bfd_link_info *, bfd *abfd, const char *name);
+    (struct bfd_link_info *, bfd *abfd, const char *name, bfd **subsbfd);
   /* A function which is called when a symbol is found with multiple
      definitions.  NAME is the symbol which is defined multiple times.
      OBFD is the old BFD, OSEC is the old section, OVAL is the old
@@ -535,11 +542,11 @@ struct bfd_link_callbacks
   /* A function which is called when a relocation is attempted against
      an undefined symbol.  NAME is the symbol which is undefined.
      ABFD, SECTION and ADDRESS identify the location from which the
-     reference is made. FATAL indicates whether an undefined symbol is
+     reference is made. IS_FATAL indicates whether an undefined symbol is
      a fatal error or not. In some cases SECTION may be NULL.  */
   bfd_boolean (*undefined_symbol)
     (struct bfd_link_info *, const char *name, bfd *abfd,
-     asection *section, bfd_vma address, bfd_boolean fatal);
+     asection *section, bfd_vma address, bfd_boolean is_fatal);
   /* A function which is called when a reloc overflow occurs. ENTRY is
      the link hash table entry for the symbol the reloc is against.
      NAME is the name of the local symbol or section the reloc is
@@ -707,8 +714,8 @@ struct bfd_elf_version_expr
   struct bfd_elf_version_expr *next;
   /* Glob pattern.  */
   const char *pattern;
-  /* NULL for a glob pattern, otherwise a straight symbol.  */
-  const char *symbol;
+  /* Set if pattern is not a glob.  */
+  unsigned int literal : 1;
   /* Defined by ".symver".  */
   unsigned int symver : 1;
   /* Defined by version script.  */
This page took 0.025446 seconds and 4 git commands to generate.