OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [include/] [bfdlink.h] - Diff between revs 17 and 161

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 17 Rev 161
Line 222... Line 222...
  RM_IGNORE,
  RM_IGNORE,
  RM_GENERATE_WARNING,
  RM_GENERATE_WARNING,
  RM_GENERATE_ERROR
  RM_GENERATE_ERROR
};
};
 
 
 
typedef enum {with_flags, without_flags} flag_type;
 
 
 
/* A section flag list.  */
 
struct flag_info_list
 
{
 
  flag_type with;
 
  const char *name;
 
  bfd_boolean valid;
 
  struct flag_info_list *next;
 
};
 
 
 
/* Section flag info.  */
 
struct flag_info
 
{
 
  flagword only_with_flags;
 
  flagword not_with_flags;
 
  struct flag_info_list *flag_list;
 
  bfd_boolean flags_initialized;
 
};
 
 
struct bfd_elf_dynamic_list;
struct bfd_elf_dynamic_list;
 
 
/* This structure holds all the information needed to communicate
/* This structure holds all the information needed to communicate
   between BFD and the linker when doing a link.  */
   between BFD and the linker when doing a link.  */
 
 
struct bfd_link_info
struct bfd_link_info
{
{
  /* TRUE if BFD should generate a relocatable object file.  */
  /* TRUE if BFD should generate a shared object (or a pie).  */
  unsigned int relocatable: 1;
  unsigned int shared: 1;
 
 
  /* TRUE if BFD should generate relocation information in the final
  /* TRUE if generating an executable, position independent or not.  */
     executable.  */
  unsigned int executable : 1;
  unsigned int emitrelocations: 1;
 
 
 
  /* TRUE if BFD should generate a "task linked" object file,
  /* TRUE if generating a position independent executable.  */
     similar to relocatable but also with globals converted to
  unsigned int pie: 1;
     statics.  */
 
  unsigned int task_link: 1;
 
 
 
  /* TRUE if BFD should generate a shared object.  */
  /* TRUE if BFD should generate a relocatable object file.  */
  unsigned int shared: 1;
  unsigned int relocatable: 1;
 
 
  /* TRUE if BFD should pre-bind symbols in a shared object.  */
  /* TRUE if BFD should pre-bind symbols in a shared object.  */
  unsigned int symbolic: 1;
  unsigned int symbolic: 1;
 
 
 
  /* TRUE if executable should not contain copy relocs.
 
     Setting this true may result in a non-sharable text segment.  */
 
  unsigned int nocopyreloc: 1;
 
 
  /* TRUE if BFD should export all symbols in the dynamic symbol table
  /* TRUE if BFD should export all symbols in the dynamic symbol table
     of an executable, rather than only those used.  */
     of an executable, rather than only those used.  */
  unsigned int export_dynamic: 1;
  unsigned int export_dynamic: 1;
 
 
  /* TRUE if shared objects should be linked directly, not shared.  */
 
  unsigned int static_link: 1;
 
 
 
  /* TRUE if the output file should be in a traditional format.  This
 
     is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
 
     on the output file, but may be checked when reading the input
 
     files.  */
 
  unsigned int traditional_format: 1;
 
 
 
  /* TRUE if we want to produced optimized output files.  This might
 
     need much more time and therefore must be explicitly selected.  */
 
  unsigned int optimize: 1;
 
 
 
  /* TRUE if ok to have multiple definition.  */
 
  unsigned int allow_multiple_definition: 1;
 
 
 
  /* TRUE if ok to have version with no definition.  */
 
  unsigned int allow_undefined_version: 1;
 
 
 
  /* TRUE if a default symbol version should be created and used for
  /* TRUE if a default symbol version should be created and used for
     exported symbols.  */
     exported symbols.  */
  unsigned int create_default_symver: 1;
  unsigned int create_default_symver: 1;
 
 
  /* TRUE if a default symbol version should be created and used for
  /* TRUE if unreferenced sections should be removed.  */
     imported symbols.  */
  unsigned int gc_sections: 1;
  unsigned int default_imported_symver: 1;
 
 
 
  /* TRUE if symbols should be retained in memory, FALSE if they
 
     should be freed and reread.  */
 
  unsigned int keep_memory: 1;
 
 
 
  /* TRUE if every symbol should be reported back via the notice
  /* TRUE if every symbol should be reported back via the notice
     callback.  */
     callback.  */
  unsigned int notice_all: 1;
  unsigned int notice_all: 1;
 
 
  /* TRUE if executable should not contain copy relocs.
  /* TRUE if we are loading LTO outputs.  */
     Setting this true may result in a non-sharable text segment.  */
  unsigned int loading_lto_outputs: 1;
  unsigned int nocopyreloc: 1;
 
 
 
  /* TRUE if the new ELF dynamic tags are enabled. */
  /* TRUE if global symbols in discarded sections should be stripped.  */
  unsigned int new_dtags: 1;
  unsigned int strip_discarded: 1;
 
 
  /* TRUE if non-PLT relocs should be merged into one reloc section
  /* TRUE if all data symbols should be dynamic.  */
     and sorted so that relocs against the same symbol come together.  */
  unsigned int dynamic_data: 1;
  unsigned int combreloc: 1;
 
 
 
  /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
  /* Which symbols to strip.  */
     should be created.  */
  ENUM_BITFIELD (bfd_link_strip) strip : 2;
  unsigned int eh_frame_hdr: 1;
 
 
 
  /* TRUE if global symbols in discarded sections should be stripped.  */
  /* Which local symbols to discard.  */
  unsigned int strip_discarded: 1;
  ENUM_BITFIELD (bfd_link_discard) discard : 2;
 
 
  /* TRUE if generating a position independent executable.  */
  /* Criteria for skipping symbols when determining
  unsigned int pie: 1;
     whether to include an object from an archive. */
 
  ENUM_BITFIELD (bfd_link_common_skip_ar_symbols) common_skip_ar_symbols : 2;
 
 
  /* TRUE if generating an executable, position independent or not.  */
  /* What to do with unresolved symbols in an object file.
  unsigned int executable : 1;
     When producing executables the default is GENERATE_ERROR.
 
     When producing shared libraries the default is IGNORE.  The
 
     assumption with shared libraries is that the reference will be
 
     resolved at load/execution time.  */
 
  ENUM_BITFIELD (report_method) unresolved_syms_in_objects : 2;
 
 
  /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X
  /* What to do with unresolved symbols in a shared library.
     flags.  */
     The same defaults apply.  */
  unsigned int execstack: 1;
  ENUM_BITFIELD (report_method) unresolved_syms_in_shared_libs : 2;
 
 
  /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W
  /* TRUE if shared objects should be linked directly, not shared.  */
     flags.  */
  unsigned int static_link: 1;
  unsigned int noexecstack: 1;
 
 
  /* TRUE if symbols should be retained in memory, FALSE if they
 
     should be freed and reread.  */
 
  unsigned int keep_memory: 1;
 
 
 
  /* TRUE if BFD should generate relocation information in the final
 
     executable.  */
 
  unsigned int emitrelocations: 1;
 
 
  /* TRUE if PT_GNU_RELRO segment should be created.  */
  /* TRUE if PT_GNU_RELRO segment should be created.  */
  unsigned int relro: 1;
  unsigned int relro: 1;
 
 
 
  /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
 
     should be created.  */
 
  unsigned int eh_frame_hdr: 1;
 
 
  /* TRUE if we should warn when adding a DT_TEXTREL to a shared object.  */
  /* TRUE if we should warn when adding a DT_TEXTREL to a shared object.  */
  unsigned int warn_shared_textrel: 1;
  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;
 
 
 
  /* TRUE if user shoudl be informed of removed unreferenced sections.  */
 
  unsigned int print_gc_sections: 1;
 
 
 
  /* TRUE if .hash section should be created.  */
  /* TRUE if .hash section should be created.  */
  unsigned int emit_hash: 1;
  unsigned int emit_hash: 1;
 
 
  /* TRUE if .gnu.hash section should be created.  */
  /* TRUE if .gnu.hash section should be created.  */
  unsigned int emit_gnu_hash: 1;
  unsigned int emit_gnu_hash: 1;
Line 344... Line 345...
  /* If TRUE reduce memory overheads, at the expense of speed. This will
  /* If TRUE reduce memory overheads, at the expense of speed. This will
     cause map file generation to use an O(N^2) algorithm and disable
     cause map file generation to use an O(N^2) algorithm and disable
     caching ELF symbol buffer.  */
     caching ELF symbol buffer.  */
  unsigned int reduce_memory_overheads: 1;
  unsigned int reduce_memory_overheads: 1;
 
 
  /* TRUE if all data symbols should be dynamic.  */
  /* TRUE if the output file should be in a traditional format.  This
   unsigned int dynamic_data: 1;
     is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
 
     on the output file, but may be checked when reading the input
 
     files.  */
 
  unsigned int traditional_format: 1;
 
 
 
  /* TRUE if non-PLT relocs should be merged into one reloc section
 
     and sorted so that relocs against the same symbol come together.  */
 
  unsigned int combreloc: 1;
 
 
 
  /* TRUE if a default symbol version should be created and used for
 
     imported symbols.  */
 
  unsigned int default_imported_symver: 1;
 
 
 
  /* TRUE if the new ELF dynamic tags are enabled. */
 
  unsigned int new_dtags: 1;
 
 
 
  /* FALSE if .eh_frame unwind info should be generated for PLT and other
 
     linker created sections, TRUE if it should be omitted.  */
 
  unsigned int no_ld_generated_unwind_info: 1;
 
 
 
  /* TRUE if BFD should generate a "task linked" object file,
 
     similar to relocatable but also with globals converted to
 
     statics.  */
 
  unsigned int task_link: 1;
 
 
 
  /* TRUE if ok to have multiple definition.  */
 
  unsigned int allow_multiple_definition: 1;
 
 
 
  /* TRUE if ok to have version with no definition.  */
 
  unsigned int allow_undefined_version: 1;
 
 
  /* TRUE if some symbols have to be dynamic, controlled by
  /* TRUE if some symbols have to be dynamic, controlled by
     --dynamic-list command line options.  */
     --dynamic-list command line options.  */
  unsigned int dynamic: 1;
  unsigned int dynamic: 1;
 
 
  /* Non-NULL if .note.gnu.build-id section should be created.  */
  /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W|PF_X
  char *emit_note_gnu_build_id;
     flags.  */
 
  unsigned int execstack: 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
 
     assumption with shared libraries is that the reference will be
 
     resolved at load/execution time.  */
 
  enum report_method unresolved_syms_in_objects;
 
 
 
  /* What to do with unresolved symbols in a shared library.
  /* TRUE if PT_GNU_STACK segment should be created with PF_R|PF_W
     The same defaults apply.  */
     flags.  */
  enum report_method unresolved_syms_in_shared_libs;
  unsigned int noexecstack: 1;
 
 
  /* Which symbols to strip.  */
  /* TRUE if we want to produced optimized output files.  This might
  enum bfd_link_strip strip;
     need much more time and therefore must be explicitly selected.  */
 
  unsigned int optimize: 1;
 
 
  /* Which local symbols to discard.  */
  /* TRUE if user should be informed of removed unreferenced sections.  */
  enum bfd_link_discard discard;
  unsigned int print_gc_sections: 1;
 
 
  /* Criteria for skipping symbols when determining
  /* TRUE if we should warn alternate ELF machine code.  */
     whether to include an object from an archive. */
  unsigned int warn_alternate_em: 1;
  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
  /* Char that may appear as the first char of a symbol, but should be
     skipped (like symbol_leading_char) when looking up symbols in
     skipped (like symbol_leading_char) when looking up symbols in
     wrap_hash.  Used by PowerPC Linux for 'dot' symbols.  */
     wrap_hash.  Used by PowerPC Linux for 'dot' symbols.  */
  char wrap_char;
  char wrap_char;
Line 410... Line 434...
  /* The list of input BFD's involved in the link.  These are chained
  /* The list of input BFD's involved in the link.  These are chained
     together via the link_next field.  */
     together via the link_next field.  */
  bfd *input_bfds;
  bfd *input_bfds;
  bfd **input_bfds_tail;
  bfd **input_bfds_tail;
 
 
 
  /* Non-NULL if .note.gnu.build-id section should be created.  */
 
  char *emit_note_gnu_build_id;
 
 
  /* If a symbol should be created for each input BFD, this is section
  /* If a symbol should be created for each input BFD, this is section
     where those symbols should be placed.  It must be a section in
     where those symbols should be placed.  It must be a section in
     the output BFD.  It may be NULL, in which case no such symbols
     the output BFD.  It may be NULL, in which case no such symbols
     will be created.  This is to support CREATE_OBJECT_SYMBOLS in the
     will be created.  This is to support CREATE_OBJECT_SYMBOLS in the
     linker command language.  */
     linker command language.  */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.