forked from Imagelibrary/binutils-gdb
bfd macro conversion to inline functions
This converts some of the macros that access struct bfd fields to
inline functions.
bfd/
* archive.c (bfd_generic_archive_p): Use bfd_set_thin_archive.
* bfd-in.h (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
(bfd_get_target, bfd_get_flavour, bfd_family_coff, bfd_big_endian),
(bfd_little_endian, bfd_header_big_endian, bfd_header_little_endian),
(bfd_get_file_flags, bfd_applicable_file_flags),
(bfd_applicable_section_flags, bfd_has_map, bfd_is_thin_archive),
(bfd_valid_reloc_types, bfd_usrdata, bfd_get_start_address),
(bfd_get_symcount, bfd_get_outsymbols, bfd_count_sections),
(bfd_get_dynamic_symcount, bfd_get_symbol_leading_char): Delete.
* bfd/bfd.c (bfd_get_filename, bfd_get_cacheable, bfd_get_format),
(bfd_get_file_flags, bfd_get_start_address, bfd_get_symcount),
(bfd_get_dynamic_symcount, bfd_get_outsymbols, bfd_count_sections),
(bfd_has_map, bfd_is_thin_archive, bfd_set_thin_archive),
(bfd_usrdata, bfd_set_usrdata): New inline functions.
* targets.c (bfd_get_target, bfd_get_flavour),
(bfd_applicable_file_flags, bfd_family_coff, bfd_big_endian),
(bfd_little_endian, bfd_header_big_endian),
(bfd_header_little_endian, bfd_applicable_section_flags),
(bfd_get_symbol_leading_char): New inline functions.
* bfd-in2.h: Regenerate.
binutils/
* ar.c (write_archive): Use bfd_set_thin_archive.
gdb/
* gdb_bfd.c (gdb_bfd_ref, gdb_bfd_unref): Use bfd_set_usrdata.
* dwarf2read.c (dwarf2_read_gdb_index, dwarf2_read_debug_names),
(read_indirect_string_from_dwz): Use bfd accessor.
* dwarf2read.h (struct dwz_file <filename>): Likewise.
* machoread.c (macho_symfile_read_all_oso): Likewise.
* solib.c (solib_bfd_open): Likewise.
ld/
* ldelf.c (ldelf_after_open, ldelf_place_orphan
* ldlang.c (walk_wild_file, lang_process): Use bfd_usrdata.
(load_symbols, ldlang_add_file): Use bfd_set_usrdata.
* ldmain.c (add_archive_element): Use bfd_usrdata.
* ldlang.h (bfd_input_just_syms): New inline function.
* emultempl/aarch64elf.em (build_section_lists): Use it.
* emultempl/mmo.em (mmo_place_orphan): Likewise.
* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/ppc64elf.em (build_section_lists): Likewise.
sim/
* ppc/emul_generic.c (emul_add_tree_options): Delete old bfd code.
This commit is contained in:
14
ld/ldlang.c
14
ld/ldlang.c
@@ -902,12 +902,8 @@ walk_wild_file (lang_wild_statement_type *s,
|
||||
archive which is included, BFD will call ldlang_add_file,
|
||||
which will set the usrdata field of the member to the
|
||||
lang_input_statement. */
|
||||
if (member->usrdata != NULL)
|
||||
{
|
||||
walk_wild_section (s,
|
||||
(lang_input_statement_type *) member->usrdata,
|
||||
callback, data);
|
||||
}
|
||||
if (bfd_usrdata (member) != NULL)
|
||||
walk_wild_section (s, bfd_usrdata (member), callback, data);
|
||||
|
||||
member = bfd_openr_next_archived_file (f->the_bfd, member);
|
||||
}
|
||||
@@ -3038,7 +3034,7 @@ load_symbols (lang_input_statement_type *entry,
|
||||
case bfd_archive:
|
||||
check_excluded_libs (entry->the_bfd);
|
||||
|
||||
entry->the_bfd->usrdata = entry;
|
||||
bfd_set_usrdata (entry->the_bfd, entry);
|
||||
if (entry->flags.whole_archive)
|
||||
{
|
||||
bfd *member = NULL;
|
||||
@@ -6898,7 +6894,7 @@ ldlang_add_file (lang_input_statement_type *entry)
|
||||
|
||||
*link_info.input_bfds_tail = entry->the_bfd;
|
||||
link_info.input_bfds_tail = &entry->the_bfd->link.next;
|
||||
entry->the_bfd->usrdata = entry;
|
||||
bfd_set_usrdata (entry->the_bfd, entry);
|
||||
bfd_set_gp_size (entry->the_bfd, g_switch_value);
|
||||
|
||||
/* Look through the sections and check for any which should not be
|
||||
@@ -7540,7 +7536,7 @@ lang_process (void)
|
||||
*iter = temp;
|
||||
if (my_arch != NULL)
|
||||
{
|
||||
lang_input_statement_type *parent = my_arch->usrdata;
|
||||
lang_input_statement_type *parent = bfd_usrdata (my_arch);
|
||||
if (parent != NULL)
|
||||
parent->next = (lang_input_statement_type *)
|
||||
((char *) iter
|
||||
|
||||
Reference in New Issue
Block a user