X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fbfdlink.h;h=228cab8fd97b84fd489f06b86efd2f58a5e86057;hb=c694fd509c66fdf2b0e26bd136e7279f231eec91;hp=a3a11fa63854d246e73c863331d9daa8feb950e2;hpb=e1fffbe6e9081f5d7b12fe6d591b00a8eb6d8897;p=deliverable%2Fbinutils-gdb.git diff --git a/include/bfdlink.h b/include/bfdlink.h index a3a11fa638..228cab8fd9 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -221,6 +221,8 @@ enum report_method RM_GENERATE_ERROR }; +struct bfd_elf_dynamic_list; + /* This structure holds all the information needed to communicate between BFD and the linker when doing a link. */ @@ -301,9 +303,6 @@ struct bfd_link_info /* TRUE if global symbols in discarded sections should be stripped. */ unsigned int strip_discarded: 1; - /* TRUE if the final relax pass is needed. */ - unsigned int need_relax_finalize: 1; - /* TRUE if generating a position independent executable. */ unsigned int pie: 1; @@ -327,6 +326,20 @@ struct bfd_link_info /* 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. */ + unsigned int emit_hash: 1; + + /* TRUE if .gnu.hash section should be created. */ + unsigned int emit_gnu_hash: 1; + + /* 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 + caching ELF symbol buffer. */ + unsigned int reduce_memory_overheads: 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 @@ -398,6 +411,12 @@ struct bfd_link_info unloaded. */ const char *fini_function; + /* Number of relaxation passes. Usually only one relaxation pass + is needed. But a backend can have as many relaxation passes as + necessary. During bfd_relax_section call, it is set to the + current pass, starting from 0. */ + int relax_pass; + /* Non-zero if auto-import thunks for DATA items in pei386 DLLs should be generated/linked against. Set to 1 if this feature is explicitly requested by the user, -1 if enabled by default. */ @@ -419,6 +438,9 @@ struct bfd_link_info /* Start and end of RELRO region. */ bfd_vma relro_start, relro_end; + + /* List of symbols should be dynamic. */ + struct bfd_elf_dynamic_list *dynamic; }; /* This structures holds a set of callback functions. These are @@ -510,8 +532,7 @@ struct bfd_link_callbacks const char *name, const char *reloc_name, bfd_vma addend, bfd *abfd, asection *section, bfd_vma address); /* A function which is called when a dangerous reloc is performed. - The canonical example is an a29k IHCONST reloc which does not - follow an IHIHALF reloc. MESSAGE is an appropriate message. + MESSAGE is an appropriate message. ABFD, SECTION and ADDRESS identify the location at which the problem occurred; if this is the result of a bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then @@ -555,7 +576,7 @@ enum bfd_link_order_type }; /* This is the link_order structure itself. These form a chain - attached to the section whose contents they are describing. */ + attached to the output section whose contents they are describing. */ struct bfd_link_order { @@ -713,4 +734,12 @@ struct bfd_elf_version_tree struct bfd_elf_version_expr *prev, const char *sym); }; +struct bfd_elf_dynamic_list +{ + struct bfd_elf_version_expr_head head; + struct bfd_elf_version_expr *(*match) + (struct bfd_elf_version_expr_head *head, + struct bfd_elf_version_expr *prev, const char *sym); +}; + #endif