- Copyright 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003-2022 Free Software Foundation, Inc.
Contributed by Stephane Carrez (stcarrez@nerim.fr)
This file is part of BFD, the Binary File Descriptor library.
Contributed by Stephane Carrez (stcarrez@nerim.fr)
This file is part of BFD, the Binary File Descriptor library.
#define BFD_M68HC11_BANK_VIRTUAL_NAME "__bank_virtual"
/* Set and control ELF flags in ELF header. */
#define BFD_M68HC11_BANK_VIRTUAL_NAME "__bank_virtual"
/* Set and control ELF flags in ELF header. */
-extern bfd_boolean _bfd_m68hc11_elf_merge_private_bfd_data (bfd*,bfd*);
-extern bfd_boolean _bfd_m68hc11_elf_set_private_flags (bfd*,flagword);
-extern bfd_boolean _bfd_m68hc11_elf_print_private_bfd_data (bfd*, void*);
+extern bool _bfd_m68hc11_elf_merge_private_bfd_data
+ (bfd *, struct bfd_link_info *);
+extern bool _bfd_m68hc11_elf_set_private_flags (bfd*,flagword);
+extern bool _bfd_m68hc11_elf_print_private_bfd_data (bfd*, void*);
/* This hash entry is used to record a trampoline that must be generated
to call a far function using a normal calling convention ('jsr').
The trampoline is used when a pointer to a far function is used.
It takes care of installing the proper memory bank as well as creating
the 'call/rtc' calling convention. */
/* This hash entry is used to record a trampoline that must be generated
to call a far function using a normal calling convention ('jsr').
The trampoline is used when a pointer to a far function is used.
It takes care of installing the proper memory bank as well as creating
the 'call/rtc' calling convention. */
- __bank_start Symbol marking the start of memory bank window
- (bank_physical)
- __bank_virtual Logical address of symbols for which the transformation
- must be computed
- __bank_page_size Size in bytes of page size (this is *NOT* the memory
- bank window size and the window size is always
- less or equal to the page size)
+ __bank_start Symbol marking the start of memory bank window
+ (bank_physical)
+ __bank_virtual Logical address of symbols for which the transformation
+ must be computed
+ __bank_page_size Size in bytes of page size (this is *NOT* the memory
+ bank window size and the window size is always
+ less or equal to the page size)
- /* Small local sym to section mapping cache. */
- struct sym_sec_cache sym_sec;
-
- bfd_boolean (* size_one_stub) PARAMS((struct bfd_hash_entry*, void*));
- bfd_boolean (* build_one_stub) PARAMS((struct bfd_hash_entry*, void*));
+ bool (* size_one_stub) (struct bfd_hash_entry*, void*);
+ bool (* build_one_stub) (struct bfd_hash_entry*, void*);
};
/* Get the Sparc64 ELF linker hash table from a link_info structure. */
#define m68hc11_elf_hash_table(p) \
};
/* Get the Sparc64 ELF linker hash table from a link_info structure. */
#define m68hc11_elf_hash_table(p) \
- ((struct m68hc11_elf_link_hash_table *) ((p)->hash))
+ ((is_elf_hash_table ((p)->hash) \
+ && elf_hash_table_id (elf_hash_table (p)) == M68HC11_ELF_DATA) \
+ ? (struct m68hc11_elf_link_hash_table *) (p)->hash : NULL)
/* Create a 68HC11/68HC12 ELF linker hash table. */
extern struct m68hc11_elf_link_hash_table* m68hc11_elf_hash_table_create
(bfd*);
/* Create a 68HC11/68HC12 ELF linker hash table. */
extern struct m68hc11_elf_link_hash_table* m68hc11_elf_hash_table_create
(bfd*);
asymbol *symbol, void *data, asection *input_section,
bfd *output_bfd, char **error_message);
asymbol *symbol, void *data, asection *input_section,
bfd *output_bfd, char **error_message);
(bfd * abfd, struct bfd_link_info * info,
asection * sec, const Elf_Internal_Rela * relocs);
(bfd * abfd, struct bfd_link_info * info,
asection * sec, const Elf_Internal_Rela * relocs);
(bfd *output_bfd, struct bfd_link_info *info,
bfd *input_bfd, asection *input_section,
bfd_byte *contents, Elf_Internal_Rela *relocs,
Elf_Internal_Sym *local_syms, asection **local_sections);
(bfd *output_bfd, struct bfd_link_info *info,
bfd *input_bfd, asection *input_section,
bfd_byte *contents, Elf_Internal_Rela *relocs,
Elf_Internal_Sym *local_syms, asection **local_sections);
(bfd *abfd, struct bfd_link_info *info,
Elf_Internal_Sym *sym, const char **namep,
flagword *flagsp, asection **secp,
bfd_vma *valp);
(bfd *abfd, struct bfd_link_info *info,
Elf_Internal_Sym *sym, const char **namep,
flagword *flagsp, asection **secp,
bfd_vma *valp);
(bfd *, bfd *, struct bfd_link_info *,
asection * (*) (const char *, asection *));
(bfd *, bfd *, struct bfd_link_info *,
asection * (*) (const char *, asection *));