#include "bfd.h"#include "sysdep.h"#include "libbfd.h"#include "bfdlink.h"#include "genlink.h"

Go to the source code of this file.
| #define archive_hash_lookup | ( | t, | |||
| string, | |||||
| create, | |||||
| copy | ) |
Value:
((struct archive_hash_entry *) \ bfd_hash_lookup (&(t)->table, (string), (create), (copy)))
Definition at line 920 of file linker.c.
Referenced by _bfd_generic_link_add_archive_symbols().
| #define archive_hash_table_free | ( | t | ) | bfd_hash_table_free (&(t)->table) |
| #define CONS_PREFIX "GLOBAL_" |
Referenced by _bfd_generic_link_add_one_symbol().
| #define CONS_PREFIX_LEN (sizeof CONS_PREFIX - 1) |
Referenced by _bfd_generic_link_add_one_symbol().
| #define REAL "__real_" |
Referenced by bfd_wrapped_link_hash_lookup().
| #define WRAP "__wrap_" |
Referenced by bfd_wrapped_link_hash_lookup().
| enum link_action |
| enum link_row |
| unsigned int _bfd_count_link_order_relocs | ( | struct bfd_link_order * | link_order | ) |
Definition at line 2872 of file linker.c.
References bfd_section_reloc_link_order, bfd_symbol_reloc_link_order, c, bfd_link_order::next, NULL, and bfd_link_order::type.
Referenced by NAME().
| bfd_boolean _bfd_default_link_order | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| asection * | sec, | |||
| struct bfd_link_order * | link_order | |||
| ) |
Definition at line 2668 of file linker.c.
References abort, bfd_data_link_order, bfd_indirect_link_order, bfd_section_reloc_link_order, bfd_symbol_reloc_link_order, bfd_undefined_link_order, default_data_link_order(), default_indirect_link_order(), FALSE, and bfd_link_order::type.
Referenced by _bfd_coff_final_link(), _bfd_ecoff_bfd_final_link(), _bfd_generic_final_link(), _bfd_xcoff_bfd_final_link(), bfd_elf_final_link(), elf_bfd_final_link(), NAME(), and ppc_bfd_coff_final_link().
| bfd_boolean _bfd_generic_final_link | ( | bfd * | abfd, | |
| struct bfd_link_info * | info | |||
| ) |
Definition at line 2037 of file linker.c.
References _bfd_default_link_order(), _bfd_generic_hash_table, _bfd_generic_link_get_symbols, _bfd_generic_link_hash_traverse, _bfd_generic_link_output_symbols(), _bfd_generic_link_write_global_symbol(), _bfd_generic_reloc_link_order(), bfd_alloc(), BFD_ASSERT, bfd_canonicalize_reloc(), bfd_get_outsymbols, bfd_get_reloc_upper_bound(), bfd_get_symcount, bfd_indirect_link_order, bfd_malloc(), bfd_section_reloc_link_order, bfd_symbol_reloc_link_order, default_indirect_link_order(), FALSE, bfd_section::flags, free(), generic_add_output_symbol(), bfd_link_order::indirect, generic_write_global_symbol_info::info, input_bfd, bfd_link_info::input_bfds, input_section, bfd::link_next, bfd_section::link_order_head, bfd_section::next, bfd_link_order::next, NULL, o, bfd_section::orelocation, generic_write_global_symbol_info::output_bfd, bfd_section::owner, p, generic_write_global_symbol_info::psymalloc, bfd_section::reloc_count, bfd_link_info::relocatable, relocs, relsize, SEC_RELOC, bfd::sections, sub, symbols, TRUE, bfd_link_order::type, and bfd_link_order::u.
| bfd_boolean _bfd_generic_link_add_archive_symbols | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_boolean(*)(bfd *, struct bfd_link_info *, bfd_boolean *) | checkfn | |||
| ) |
Definition at line 967 of file linker.c.
References archive_hash_allocate, archive_hash_lookup, archive_hash_newfunc(), archive_hash_table_free, archive_hash_table_init(), bfd::archive_pass, bfd_ardata, bfd_check_format(), bfd_error_no_armap, bfd_get_elt_at_index, bfd_has_map, bfd_link_hash_common, bfd_link_hash_undefined, bfd_malloc(), bfd_object, bfd_openr_next_archived_file(), bfd_set_error(), buf, archive_hash_entry::defs, element, FALSE, free(), h, bfd_link_info::hash, archive_list::indx, indx, carsym::name, archive_list::next, NULL, bfd_link_info::pei386_auto_import, bfd_link_hash_entry::root, sprintf(), bfd_hash_entry::string, strlen(), TRUE, bfd_link_hash_entry::type, bfd_link_hash_entry::u, bfd_link_hash_entry::undef, bfd_link_hash_table::undefs, and bfd_link_hash_table::undefs_tail.
Referenced by _bfd_coff_link_add_symbols(), _bfd_xcoff_bfd_link_add_symbols(), ecoff_link_add_archive_symbols(), generic_link_add_symbols(), and NAME().
| bfd_boolean _bfd_generic_link_add_one_symbol | ( | struct bfd_link_info * | info, | |
| bfd * | abfd, | |||
| const char * | name, | |||
| flagword | flags, | |||
| asection * | section, | |||
| bfd_vma | value, | |||
| const char * | string, | |||
| bfd_boolean | copy, | |||
| bfd_boolean | collect, | |||
| struct bfd_link_hash_entry ** | hashp | |||
| ) |
Definition at line 1528 of file linker.c.
References _, abort, bfd_link_callbacks::add_to_set, bfd_link_info::allow_multiple_definition, BFD_ASSERT, bfd_com_section_ptr, bfd_error_invalid_operation, bfd_hash_allocate(), bfd_hash_lookup(), bfd_hash_replace(), bfd_ind_section_ptr, bfd_is_abs_section, bfd_is_com_section, bfd_is_ind_section, bfd_is_und_section, bfd_link_add_undef(), bfd_link_hash_common, bfd_link_hash_defined, bfd_link_hash_defweak, bfd_link_hash_indirect, bfd_link_hash_lookup(), bfd_link_hash_new, bfd_link_hash_undefined, bfd_link_hash_undefweak, bfd_link_hash_warning, bfd_log2(), bfd_make_section_old_way(), BFD_RELOC_CTOR, bfd_set_error(), bfd_wrapped_link_hash_lookup(), BIG, BSF_CONSTRUCTOR, BSF_INDIRECT, BSF_WARNING, BSF_WEAK, c, bfd_link_hash_entry::c, bfd_link_info::callbacks, CDEF, CIND, COM, COMMON_ROW, CONS_PREFIX, CONS_PREFIX_LEN, bfd_link_callbacks::constructor, CREF, CWARN, bfd_link_hash_entry::def, DEF, DEF_ROW, DEFW, DEFW_ROW, FAIL, FALSE, h, bfd_link_info::hash, hash_entry_bfd(), bfd_link_hash_entry::i, IND, INDR_ROW, int, ipa_is_whirl(), is_ipa, len, MDEF, memcpy, MIND, bfd_link_callbacks::multiple_common, bfd_link_callbacks::multiple_definition, MWARN, bfd_section::name, bfd_hash_table::newfunc, NOACT, bfd_link_callbacks::notice, bfd_link_info::notice_all, bfd_link_info::notice_hash, NULL, obfd, bfd_section::owner, REF, REFC, bfd_link_hash_entry::root, s, SEC_ALLOC, SET, SET_ROW, strcmp(), bfd_hash_entry::string, strlen(), strncmp(), sub, bfd_link_hash_table::table, TRUE, bfd_link_hash_entry::type, bfd_link_hash_entry::u, UND, bfd_link_hash_entry::undef, UNDEF_ROW, bfd_link_hash_table::undefs_tail, UNDEFW_ROW, WARN, WARN_ROW, WARNC, bfd_link_callbacks::warning, and WEAK.
Referenced by _bfd_elf_add_default_symbol(), _bfd_elf_create_dynamic_sections(), _bfd_elf_create_got_section(), _bfd_elf_link_create_dynamic_sections(), _bfd_mips_elf_add_symbol_hook(), _bfd_mips_elf_create_dynamic_sections(), _bfd_mn10300_elf_create_got_section(), _frv_create_got_section(), aout_link_add_symbols(), bfd_elf_size_dynamic_sections(), coff_m68k_aux_link_add_one_symbol(), ecoff_link_add_externals(), elf32_frvfdpic_always_size_sections(), elf32_m68hc11_add_symbol_hook(), elf32_sparc_check_relocs(), elf64_alpha_create_dynamic_sections(), elf_link_add_object_symbols(), generic_link_add_symbol_list(), linux_add_one_symbol(), m32r_elf_add_symbol_hook(), m32r_elf_create_dynamic_sections(), m68hc11_elf_set_symbol(), make_fdh(), mips_elf_create_got_section(), ppc_elf_create_linker_section(), sh64_elf64_add_symbol_hook(), sh64_elf64_create_dynamic_sections(), sh64_elf_add_symbol_hook(), sh_elf_create_dynamic_sections(), sunos_add_one_symbol(), and xcoff_link_add_symbols().
| bfd_boolean _bfd_generic_link_add_symbols | ( | bfd * | abfd, | |
| struct bfd_link_info * | info | |||
| ) |
Definition at line 774 of file linker.c.
References FALSE, and generic_link_add_symbols().
Referenced by bfd_simple_get_relocated_section_contents(), and h8300_bfd_link_add_symbols().
| bfd_boolean _bfd_generic_link_add_symbols_collect | ( | bfd * | abfd, | |
| struct bfd_link_info * | info | |||
| ) |
| struct bfd_hash_entry* _bfd_generic_link_hash_newfunc | ( | struct bfd_hash_entry * | entry, | |
| struct bfd_hash_table * | table, | |||
| const char * | string | |||
| ) | [read] |
Definition at line 680 of file linker.c.
References _bfd_link_hash_newfunc(), bfd_hash_allocate(), FALSE, NULL, ret, generic_link_hash_entry::sym, and generic_link_hash_entry::written.
Referenced by _bfd_generic_link_hash_table_create(), and h8300_coff_link_hash_table_create().
| struct bfd_link_hash_table* _bfd_generic_link_hash_table_create | ( | bfd * | abfd | ) | [read] |
Definition at line 712 of file linker.c.
References _bfd_generic_link_hash_newfunc(), _bfd_link_hash_table_init(), bfd_malloc(), free(), NULL, ret, and generic_link_hash_table::root.
Referenced by bfd_simple_get_relocated_section_contents().
| void _bfd_generic_link_hash_table_free | ( | struct bfd_link_hash_table * | hash | ) |
Definition at line 730 of file linker.c.
References bfd_hash_table_free(), free(), ret, generic_link_hash_table::root, and bfd_link_hash_table::table.
Referenced by bfd_simple_get_relocated_section_contents(), elf32_hppa_link_hash_table_free(), elf32_mn10300_link_hash_table_free(), elfNN_ia64_hash_table_free(), m68hc11_elf_bfd_link_hash_table_free(), and ppc64_elf_link_hash_table_free().
| void _bfd_generic_link_just_syms | ( | asection * | sec, | |
| struct bfd_link_info *info | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 797 of file linker.c.
References bfd_abs_section_ptr, bfd_section::output_offset, bfd_section::output_section, and bfd_section::vma.
| bfd_boolean _bfd_generic_link_output_symbols | ( | bfd * | output_bfd, | |
| bfd * | input_bfd, | |||
| struct bfd_link_info * | info, | |||
| size_t * | psymalloc | |||
| ) |
Definition at line 2192 of file linker.c.
References _bfd_generic_hash_table, _bfd_generic_link_get_symbols, _bfd_generic_link_get_symcount, _bfd_generic_link_hash_lookup, abort, BFD_ASSERT, bfd_asymbol_bfd, bfd_asymbol_name, bfd_com_section_ptr, bfd_get_section, bfd_hash_lookup(), bfd_is_com_section, bfd_is_ind_section, bfd_is_local_label(), bfd_is_und_section, bfd_link_hash_common, bfd_link_hash_defined, bfd_link_hash_defweak, bfd_link_hash_indirect, bfd_link_hash_new, bfd_link_hash_undefined, bfd_link_hash_undefweak, bfd_make_empty_symbol, bfd_wrapped_link_hash_lookup(), BSF_CONSTRUCTOR, BSF_DEBUGGING, BSF_FILE, BSF_GLOBAL, BSF_INDIRECT, BSF_LOCAL, BSF_NOT_AT_END, BSF_WARNING, BSF_WEAK, bfd_link_hash_entry::c, bfd_link_info::create_object_symbols_section, bfd_link_hash_table::creator, bfd_link_hash_entry::def, bfd_link_info::discard, discard_all, discard_l, discard_none, discard_sec_merge, FALSE, bfd::filename, bfd_section::flags, bfd_symbol::flags, generic_add_output_symbol(), generic_link_read_symbols(), h, bfd_link_info::hash, bfd_link_hash_entry::i, if(), bfd_link_info::keep_hash, bfd_section::linker_mark, bfd_symbol::name, bfd_section::next, NULL, bfd_section::output_section, bfd_symbol::p, bfd_link_info::relocatable, generic_link_hash_entry::root, sec, SEC_HAS_CONTENTS, SEC_MERGE, bfd_symbol::section, bfd::sections, bfd_link_info::strip, strip_all, strip_none, strip_some, sym, generic_link_hash_entry::sym, TRUE, bfd_link_hash_entry::type, bfd_link_hash_entry::u, bfd_symbol::udata, bfd_symbol::value, generic_link_hash_entry::written, and bfd::xvec.
Referenced by _bfd_generic_final_link().
| bfd_boolean _bfd_generic_link_write_global_symbol | ( | struct generic_link_hash_entry * | h, | |
| void * | data | |||
| ) |
Definition at line 2490 of file linker.c.
References abort, bfd_hash_lookup(), bfd_link_hash_warning, bfd_make_empty_symbol, BSF_GLOBAL, FALSE, bfd_symbol::flags, generic_add_output_symbol(), bfd_link_hash_entry::i, if(), generic_write_global_symbol_info::info, bfd_link_info::keep_hash, bfd_symbol::name, NULL, generic_write_global_symbol_info::output_bfd, generic_write_global_symbol_info::psymalloc, generic_link_hash_entry::root, bfd_link_hash_entry::root, set_symbol_from_hash(), bfd_hash_entry::string, bfd_link_info::strip, strip_all, strip_some, sym, generic_link_hash_entry::sym, TRUE, bfd_link_hash_entry::type, bfd_link_hash_entry::u, and generic_link_hash_entry::written.
Referenced by _bfd_generic_final_link().
| bfd_boolean _bfd_generic_reloc_link_order | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| asection * | sec, | |||
| struct bfd_link_order * | link_order | |||
| ) |
Definition at line 2538 of file linker.c.
References _bfd_relocate_contents(), abort, reloc_cache_entry::addend, reloc_cache_entry::address, bfd_alloc(), bfd_error_bad_value, bfd_get_reloc_size(), bfd_octets_per_byte(), bfd_reloc_ok, bfd_reloc_outofrange, bfd_reloc_overflow, bfd_reloc_type_lookup(), bfd_section_name, bfd_section_reloc_link_order, bfd_set_error(), bfd_set_section_contents(), bfd_wrapped_link_hash_lookup(), bfd_zmalloc(), buf, bfd_link_info::callbacks, FALSE, free(), h, reloc_cache_entry::howto, reloc_howto_struct::name, NULL, bfd_link_order::offset, ok(), bfd_section::orelocation, reloc_howto_struct::partial_inplace, r, bfd_link_order::reloc, bfd_section::reloc_count, bfd_link_callbacks::reloc_overflow, bfd_link_info::relocatable, size, generic_link_hash_entry::sym, reloc_cache_entry::sym_ptr_ptr, TRUE, bfd_link_order::type, bfd_link_order::u, bfd_link_callbacks::unattached_reloc, and generic_link_hash_entry::written.
Referenced by _bfd_generic_final_link().
Definition at line 3008 of file linker.c.
References _, abort, bfd_abs_section_ptr, bfd_coff_get_comdat_section(), bfd_get_flavour, bfd_get_section_name, bfd_section_already_linked_table_insert(), bfd_section_already_linked_table_lookup(), bfd_target_coff_flavour, bfd_section_already_linked_hash_entry::entry, FALSE, bfd_section::flags, flags, bfd_section::kept_section, coff_comdat_info::name, bfd_section_already_linked::next, NULL, bfd_section::output_section, bfd_section::owner, bfd_section_already_linked::sec, SEC_GROUP, SEC_LINK_DUPLICATES, SEC_LINK_DUPLICATES_DISCARD, SEC_LINK_DUPLICATES_ONE_ONLY, SEC_LINK_DUPLICATES_SAME_CONTENTS, SEC_LINK_DUPLICATES_SAME_SIZE, SEC_LINK_ONCE, bfd_section::size, skip, strcmp(), and TRUE.
| struct bfd_hash_entry* _bfd_link_hash_newfunc | ( | struct bfd_hash_entry * | entry, | |
| struct bfd_hash_table * | table, | |||
| const char * | string | |||
| ) | [read] |
Definition at line 446 of file linker.c.
References bfd_hash_allocate(), bfd_hash_newfunc(), bfd_link_hash_new, h, memset, NULL, offsetof, bfd_link_hash_entry::type, bfd_link_hash_entry::u, and bfd_link_hash_entry::undef.
Referenced by _bfd_coff_link_hash_newfunc(), _bfd_elf_link_hash_newfunc(), _bfd_generic_link_hash_newfunc(), ecoff_link_hash_newfunc(), NAME(), and xcoff_link_hash_newfunc().
| bfd_boolean _bfd_link_hash_table_init | ( | struct bfd_link_hash_table * | table, | |
| bfd * | abfd, | |||
| struct bfd_hash_entry *(*)(struct bfd_hash_entry *, struct bfd_hash_table *, const char *) | newfunc | |||
| ) |
Definition at line 480 of file linker.c.
References bfd_hash_table_init(), bfd_link_generic_hash_table, bfd_link_hash_table::creator, NULL, bfd_link_hash_table::table, bfd_link_hash_table::type, bfd_link_hash_table::undefs, bfd_link_hash_table::undefs_tail, and bfd::xvec.
| static struct bfd_hash_entry* already_linked_newfunc | ( | struct bfd_hash_entry *entry | ATTRIBUTE_UNUSED, | |
| struct bfd_hash_table * | table, | |||
| const char *string | ATTRIBUTE_UNUSED | |||
| ) | [static, read] |
Definition at line 2980 of file linker.c.
References bfd_hash_allocate(), bfd_section_already_linked_hash_entry::entry, NULL, ret, and bfd_section_already_linked_hash_entry::root.
Referenced by bfd_section_already_linked_table_init().
| static struct bfd_hash_entry* archive_hash_newfunc | ( | struct bfd_hash_entry * | entry, | |
| struct bfd_hash_table * | table, | |||
| const char * | string | |||
| ) | [static, read] |
Definition at line 880 of file linker.c.
References bfd_hash_allocate(), bfd_hash_newfunc(), archive_hash_entry::defs, NULL, ret, and archive_hash_entry::root.
Referenced by _bfd_generic_link_add_archive_symbols().
| static bfd_boolean archive_hash_table_init | ( | struct archive_hash_table * | table, | |
| struct bfd_hash_entry *(*)(struct bfd_hash_entry *, struct bfd_hash_table *, const char *) | newfunc | |||
| ) | [static] |
Definition at line 910 of file linker.c.
References bfd_hash_table_init(), and archive_hash_table::table.
Referenced by _bfd_generic_link_add_archive_symbols().
| void bfd_link_add_undef | ( | struct bfd_link_hash_table * | table, | |
| struct bfd_link_hash_entry * | h | |||
| ) |
Definition at line 627 of file linker.c.
References BFD_ASSERT, NULL, bfd_link_hash_entry::u, bfd_link_hash_entry::undef, bfd_link_hash_table::undefs, and bfd_link_hash_table::undefs_tail.
Referenced by _bfd_generic_link_add_one_symbol(), fold_name(), func_desc_adjust(), and insert_undefined().
| struct bfd_link_hash_entry* bfd_link_hash_lookup | ( | struct bfd_link_hash_table * | table, | |
| const char * | string, | |||
| bfd_boolean | create, | |||
| bfd_boolean | copy, | |||
| bfd_boolean | follow | |||
| ) | [read] |
Definition at line 499 of file linker.c.
References bfd_hash_lookup(), bfd_link_hash_indirect, bfd_link_hash_warning, bfd_link_hash_entry::i, NULL, ret, bfd_link_hash_table::table, bfd_link_hash_entry::type, and bfd_link_hash_entry::u.
Referenced by _bfd_ecoff_bfd_final_link(), _bfd_generic_link_add_one_symbol(), _bfd_mips_elf_final_link(), add_archive_element(), alpha_ecoff_get_relocated_section_contents(), aout_link_check_ar_symbols(), bfd_wrapped_link_hash_lookup(), check_nocrossref(), clone_section(), coff_link_check_ar_symbols(), coff_m68k_aux_link_add_one_symbol(), constructor_callback(), default_indirect_link_order(), ecoff_link_check_archive_element(), elf32_frv_relocate_gprel12(), elf32_frv_relocate_gprelhi(), elf32_frv_relocate_gprello(), elf32_frv_relocate_gprelu12(), elf32_frvfdpic_finish_dynamic_sections(), elf32_hppa_set_gp(), elf32_m68hc11_add_symbol_hook(), elf32_sparc_relocate_section(), elf_link_add_object_symbols(), exp_fold_tree(), fill_exported_offsets(), generic_link_check_archive_element(), insert_undefined(), lang_abs_symbol_at_beginning_of(), lang_abs_symbol_at_end_of(), lang_finish(), lang_gc_sections(), lang_set_startof(), m32r_elf_add_symbol_hook(), m32r_elf_final_sda_base(), m68hc11_elf_get_bank_parameters(), m68hc11_elf_set_symbol(), mmix_elf_add_symbol_hook(), output_one_cref(), pe_create_import_fixup(), pe_process_import_defs(), ppc_elf_create_linker_section(), process_def_file(), sh64_elf64_add_symbol_hook(), sh64_elf_add_symbol_hook(), sparc64_elf_add_symbol_hook(), v850_elf_final_link_relocate(), xcoff_link_check_ar_symbols(), and xcoff_link_check_dynamic_ar_symbols().
| void bfd_link_hash_traverse | ( | struct bfd_link_hash_table * | table, | |
| bfd_boolean(*)(struct bfd_link_hash_entry *, void *) | func, | |||
| void * | info | |||
| ) |
Definition at line 615 of file linker.c.
References bfd_hash_traverse(), func, and bfd_link_hash_table::table.
Referenced by cleanup_symtab_for_ipa(), lang_common(), lang_map(), and print_input_section().
| void bfd_link_repair_undef_list | ( | struct bfd_link_hash_table * | table | ) |
Definition at line 646 of file linker.c.
References bfd_link_hash_new, bfd_link_hash_undefweak, h, NULL, pun, bfd_link_hash_entry::type, bfd_link_hash_entry::u, bfd_link_hash_entry::undef, bfd_link_hash_table::undefs, and bfd_link_hash_table::undefs_tail.
Referenced by bfd_elf_record_link_assignment(), elf_link_add_object_symbols(), and ppc64_elf_check_directives().
| struct bfd_link_order* bfd_new_link_order | ( | bfd * | abfd, | |
| asection * | section | |||
| ) | [read] |
Definition at line 2643 of file linker.c.
References bfd_undefined_link_order, bfd_zalloc(), bfd_section::link_order_head, bfd_section::link_order_tail, bfd_link_order::next, and NULL.
Referenced by build_link_order().
Definition at line 3000 of file linker.c.
References _bfd_section_already_linked_table, and bfd_hash_table_free().
Referenced by lang_process().
| bfd_boolean bfd_section_already_linked_table_init | ( | void | ) |
Definition at line 2993 of file linker.c.
References _bfd_section_already_linked_table, already_linked_newfunc(), and bfd_hash_table_init_n().
Referenced by lang_process().
| void bfd_section_already_linked_table_insert | ( | struct bfd_section_already_linked_hash_entry * | already_linked_list, | |
| asection * | sec | |||
| ) |
Definition at line 2966 of file linker.c.
References _bfd_section_already_linked_table, bfd_hash_allocate(), bfd_section_already_linked_hash_entry::entry, bfd_section_already_linked::next, and bfd_section_already_linked::sec.
Referenced by _bfd_elf_section_already_linked(), and _bfd_generic_section_already_linked().
| struct bfd_section_already_linked_hash_entry* bfd_section_already_linked_table_lookup | ( | const char * | name | ) | [read] |
Definition at line 2957 of file linker.c.
References _bfd_section_already_linked_table, bfd_hash_lookup(), FALSE, and TRUE.
Referenced by _bfd_elf_section_already_linked(), and _bfd_generic_section_already_linked().
| void bfd_section_already_linked_table_traverse | ( | bfd_boolean(*)(struct bfd_section_already_linked_hash_entry *, void *) | func, | |
| void * | info | |||
| ) |
Definition at line 2947 of file linker.c.
References _bfd_section_already_linked_table, bfd_hash_traverse(), and func.
| struct bfd_link_hash_entry* bfd_wrapped_link_hash_lookup | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| const char * | string, | |||
| bfd_boolean | create, | |||
| bfd_boolean | copy, | |||
| bfd_boolean | follow | |||
| ) | [read] |
Definition at line 525 of file linker.c.
References bfd_get_symbol_leading_char, bfd_hash_lookup(), bfd_link_hash_lookup(), bfd_malloc(), FALSE, free(), h, bfd_link_info::hash, n, NULL, prefix, REAL, strcat(), strlen(), strncmp(), TRUE, WRAP, bfd_link_info::wrap_char, and bfd_link_info::wrap_hash.
Referenced by _bfd_coff_reloc_link_order(), _bfd_elf_merge_symbol(), _bfd_generic_link_add_one_symbol(), _bfd_generic_link_output_symbols(), _bfd_generic_reloc_link_order(), aout_link_reloc_link_order(), bfd_coff_reloc16_get_value(), bfd_xcoff_link_count_reloc(), default_indirect_link_order(), ecoff_reloc_link_order(), elf_reloc_link_order(), fold_name(), get_value(), ld_slookup_mext(), sunos_add_one_symbol(), xcoff_link_add_symbols(), and xcoff_reloc_link_order().
| static bfd_boolean default_data_link_order | ( | bfd * | abfd, | |
| struct bfd_link_info *info | ATTRIBUTE_UNUSED, | |||
| asection * | sec, | |||
| struct bfd_link_order * | link_order | |||
| ) | [static] |
Definition at line 2691 of file linker.c.
References BFD_ASSERT, bfd_malloc(), bfd_octets_per_byte(), bfd_set_section_contents(), bfd_link_order::data, FALSE, fill(), bfd_section::flags, free(), memcpy, memset, NULL, bfd_link_order::offset, p, result, SEC_HAS_CONTENTS, bfd_link_order::size, size, TRUE, and bfd_link_order::u.
| static bfd_boolean default_data_link_order | ( | bfd * | , | |
| struct bfd_link_info * | , | |||
| asection * | , | |||
| struct bfd_link_order * | ||||
| ) | [static] |
Referenced by _bfd_default_link_order().
| static bfd_boolean default_indirect_link_order | ( | bfd * | output_bfd, | |
| struct bfd_link_info * | info, | |||
| asection * | output_section, | |||
| struct bfd_link_order * | link_order, | |||
| bfd_boolean | generic_linker | |||
| ) | [static] |
Definition at line 2745 of file linker.c.
References _, _bfd_generic_link_get_symbols, _bfd_generic_link_get_symcount, BFD_ASSERT, bfd_asymbol_name, bfd_error_wrong_format, bfd_get_relocated_section_contents(), bfd_get_section, bfd_get_target, bfd_is_com_section, bfd_is_ind_section, bfd_is_und_section, bfd_link_hash_lookup(), bfd_malloc(), bfd_octets_per_byte(), bfd_set_error(), bfd_set_section_contents(), bfd_wrapped_link_hash_lookup(), BSF_CONSTRUCTOR, BSF_GLOBAL, BSF_INDIRECT, BSF_WARNING, BSF_WEAK, contents, FALSE, bfd_section::flags, bfd_symbol::flags, free(), generic_link_read_symbols(), h, bfd_link_info::hash, bfd_link_order::indirect, input_bfd, input_section, NULL, bfd_link_order::offset, bfd_section::orelocation, bfd_section::output_offset, bfd_section::output_section, bfd_section::owner, bfd_symbol::p, bfd_section::rawsize, bfd_section::reloc_count, bfd_link_info::relocatable, SEC_HAS_CONTENTS, set_symbol_from_hash(), bfd_link_order::size, bfd_section::size, sym, TRUE, bfd_link_order::u, and bfd_symbol::udata.
Referenced by _bfd_default_link_order(), and _bfd_generic_final_link().
| static bfd_boolean generic_add_output_symbol | ( | bfd * | output_bfd, | |
| size_t * | psymalloc, | |||
| asymbol * | sym | |||
| ) | [static] |
Definition at line 2163 of file linker.c.
References bfd_get_outsymbols, bfd_get_symcount, bfd_realloc(), FALSE, NULL, and TRUE.
Referenced by _bfd_generic_final_link(), _bfd_generic_link_output_symbols(), and _bfd_generic_link_write_global_symbol().
| static bfd_boolean generic_link_add_object_symbols | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_boolean | collect | |||
| ) | [static] |
Definition at line 836 of file linker.c.
References _bfd_generic_link_get_symbols, _bfd_generic_link_get_symcount, FALSE, generic_link_add_symbol_list(), generic_link_read_symbols(), and symcount.
Referenced by generic_link_add_symbols().
| static bfd_boolean generic_link_add_symbol_list | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_size_type | count, | |||
| asymbol ** | symbols, | |||
| bfd_boolean | collect | |||
| ) | [static] |
Definition at line 1292 of file linker.c.
References _bfd_generic_link_add_one_symbol(), bfd_asymbol_name, bfd_get_section, bfd_is_com_section, bfd_is_ind_section, bfd_is_und_section, bfd_link_hash_new, BSF_CONSTRUCTOR, BSF_GLOBAL, BSF_INDIRECT, BSF_OLD_COMMON, BSF_WARNING, BSF_WEAK, bfd_link_hash_table::creator, FALSE, bfd_symbol::flags, h, bfd_link_info::hash, NULL, p, bfd_symbol::p, generic_link_hash_entry::root, bfd_symbol::section, generic_link_hash_entry::sym, TRUE, bfd_link_hash_entry::type, bfd_symbol::udata, bfd_symbol::value, and bfd::xvec.
Referenced by generic_link_add_object_symbols(), and generic_link_check_archive_element().
| static bfd_boolean generic_link_add_symbols | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_boolean | collect | |||
| ) | [static] |
Definition at line 807 of file linker.c.
References _bfd_generic_link_add_archive_symbols(), bfd_archive, bfd_error_wrong_format, bfd_get_format, bfd_object, bfd_set_error(), FALSE, generic_link_add_object_symbols(), generic_link_check_archive_element_collect(), generic_link_check_archive_element_no_collect(), and ret.
Referenced by _bfd_generic_link_add_symbols(), and _bfd_generic_link_add_symbols_collect().
| static bfd_boolean generic_link_check_archive_element | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_boolean * | pneeded, | |||
| bfd_boolean | collect | |||
| ) | [static] |
Definition at line 1162 of file linker.c.
References _bfd_generic_link_get_symbols, _bfd_generic_link_get_symcount, bfd_link_callbacks::add_archive_element, bfd_asymbol_name, bfd_asymbol_value, bfd_com_section_ptr, bfd_hash_allocate(), bfd_is_com_section, bfd_link_hash_common, bfd_link_hash_lookup(), bfd_link_hash_undefined, bfd_log2(), bfd_make_section_old_way(), BSF_GLOBAL, BSF_INDIRECT, BSF_WEAK, bfd_link_hash_entry::c, bfd_link_info::callbacks, FALSE, bfd_symbol::flags, generic_link_add_symbol_list(), generic_link_read_symbols(), h, bfd_link_info::hash, bfd_section::name, NULL, p, SEC_ALLOC, bfd_symbol::section, size, symbols, symcount, bfd_link_hash_table::table, TRUE, bfd_link_hash_entry::type, bfd_link_hash_entry::u, and bfd_link_hash_entry::undef.
Referenced by generic_link_check_archive_element_collect(), and generic_link_check_archive_element_no_collect().
| static bfd_boolean generic_link_check_archive_element_collect | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_boolean * | pneeded | |||
| ) | [static] |
Definition at line 1151 of file linker.c.
References generic_link_check_archive_element(), and TRUE.
Referenced by generic_link_add_symbols().
| static bfd_boolean generic_link_check_archive_element_no_collect | ( | bfd * | abfd, | |
| struct bfd_link_info * | info, | |||
| bfd_boolean * | pneeded | |||
| ) | [static] |
Definition at line 1138 of file linker.c.
References FALSE, and generic_link_check_archive_element().
Referenced by generic_link_add_symbols().
| static bfd_boolean generic_link_read_symbols | ( | bfd * | abfd | ) | [static] |
Definition at line 747 of file linker.c.
References bfd_alloc(), bfd_canonicalize_symtab, bfd_get_outsymbols, bfd_get_symcount, bfd_get_symtab_upper_bound, FALSE, NULL, symcount, and TRUE.
Referenced by _bfd_generic_link_output_symbols(), default_indirect_link_order(), generic_link_add_object_symbols(), and generic_link_check_archive_element().
| static bfd* hash_entry_bfd | ( | struct bfd_link_hash_entry * | h | ) | [static] |
Definition at line 1489 of file linker.c.
References bfd_link_hash_common, bfd_link_hash_defined, bfd_link_hash_defweak, bfd_link_hash_undefined, bfd_link_hash_undefweak, bfd_link_hash_warning, bfd_link_hash_entry::c, bfd_link_hash_entry::def, bfd_link_hash_entry::i, NULL, bfd_link_hash_entry::type, bfd_link_hash_entry::u, and bfd_link_hash_entry::undef.
Referenced by _bfd_generic_link_add_one_symbol().
| static void set_symbol_from_hash | ( | asymbol * | sym, | |
| struct bfd_link_hash_entry * | h | |||
| ) | [static] |
Definition at line 2429 of file linker.c.
References abort, bfd_abs_section_ptr, BFD_ASSERT, bfd_com_section_ptr, bfd_is_com_section, bfd_is_und_section, bfd_link_hash_common, bfd_link_hash_defined, bfd_link_hash_defweak, bfd_link_hash_indirect, bfd_link_hash_new, bfd_link_hash_undefined, bfd_link_hash_undefweak, bfd_link_hash_warning, bfd_und_section_ptr, BSF_CONSTRUCTOR, BSF_WEAK, bfd_link_hash_entry::c, bfd_link_hash_entry::def, bfd_symbol::flags, NULL, bfd_symbol::section, bfd_link_hash_entry::type, bfd_link_hash_entry::u, and bfd_symbol::value.
Referenced by _bfd_generic_link_write_global_symbol(), and default_indirect_link_order().
Definition at line 2939 of file linker.c.
Referenced by bfd_section_already_linked_table_free(), bfd_section_already_linked_table_init(), bfd_section_already_linked_table_insert(), bfd_section_already_linked_table_lookup(), and bfd_section_already_linked_table_traverse().
enum link_action link_action[8][8] [static] |
Initial value:
{
{UND, NOACT, UND, REF, REF, NOACT, REFC, WARNC },
{WEAK, NOACT, NOACT, REF, REF, NOACT, REFC, WARNC },
{DEF, DEF, DEF, MDEF, DEF, CDEF, MDEF, CYCLE },
{DEFW, DEFW, DEFW, NOACT, NOACT, NOACT, NOACT, CYCLE },
{COM, COM, COM, CREF, COM, BIG, REFC, WARNC },
{IND, IND, IND, MDEF, IND, CIND, MIND, CYCLE },
{MWARN, WARN, WARN, CWARN, CWARN, WARN, CWARN, NOACT },
{SET, SET, SET, SET, SET, SET, CYCLE, CYCLE }
}
1.5.6