* elf-bfd.h (emum elf_object_id): Rename to elf_target_id. Add

entries for other architectures.
        (struct elf_link_hash_table): Add hash_table_id field.
        (elf_hash_table_id): New accessor macro.
        * elflink.c (_bfd_elf_link_hash_table_init): Add target_id
        parameter.
        * elf-m10300.c (elf32_mn10300_hash_table): Check table id before
        returning cast pointer.
        (elf32_mn10300_link_hash_table_create): Identify new table as
        containing MN10300 extensions.
        (mn10300_elf_relax_section): Check pointer returned by
        elf32_mn10300_hash_table.
        * elf32-arm.c: Likewise, except using ARM extensions.
        * elf32-avr.c: Likewise, except using AVR extensions.
        * elf32-bfin.c: Likewise, except using BFIN extensions.
        * elf32-cris.c: Likewise, except using CRIS extensions.
        * elf32-frv.c: Likewise, except using FRV extensions.
        * elf32-hppa.c: Likewise, except using HPPA32 extensions.
        * elf32-i386.c: Likewise, except using I386 extensions.
        * elf32-lm32.c: Likewise, except using LM32 extensions.
        * elf32-m32r.c: Likewise, except using M32RM extensions.
        * elf32-m68hc11.c: Likewise, except using M68HC11 extensions.
        * elf32-m68hc1x.c: Likewise, except using M68HC11 extensions.
        * elf32-m68hc1x.h: Likewise, except using M68HC11 extensions.
        * elf32-m68k.c: Likewise, except using M68K extensions.
        * elf32-microblaze.c: Likewise, except using MICROBLAZE extensions.
        * elf32-ppc.c: Likewise, except using PPC32 extensions.
        * elf32-s390.c: Likewise, except using S390 extensions.
        * elf32-sh.c: Likewise, except using SH extensions.
        * elf32-spu.c: Likewise, except using SPU extensions.
        * elf32-xtensa.c: Likewise, except using XTENSA extensions.
        * elf64-alpha.c: Likewise, except using ALPHA extensions.
        * elf64-hppa.c: Likewise, except using HPPA64 extensions.
        * elf64-ppc.c: Likewise, except using PPC64 extensions.
        * elf64-s390.c: Likewise, except using S390 extensions.
        * elf64-x86-64.c: Likewise, except using X86_64 extensions.
        * elfxx-ia64.c: Likewise, except using IA64 extensions.
        * elfxx-mips.c: Likewise, except using MIPS extensions.
        * elfxx-sparc.c: Likewise, except using SPARC extensions.
        * elfxx-sparc.h: Likewise, except using SPARC extensions.
        * elf32-cr16.c (struct elf32_cr16_link_hash_table): Delete
        redundant structure.
        (elf32_cr16_hash_table): Delete unused macro.
        (elf32_cr16_link_hash_traverse): Delete unused macro.
        * elf32-score.c: Likewise.
        * elf32-score7.c: Likewise.
        * elf32-vax.c: Likewise.
        * elf64-sh64.c: Likewise.

        * emultempl/alphaelf.em: Update value expected from elf_object_id.
        * emultempl/hppaelf.em: Likewise.
        * emultempl/mipself.em: Likewise.
        * emultempl/ppc32elf.em: Likewise.
        * emultempl/ppc64elf.em: Likewise.
This commit is contained in:
Nick Clifton
2010-02-04 09:16:43 +00:00
parent 11334b8260
commit 4dfe6ac6fe
44 changed files with 1314 additions and 641 deletions

View File

@ -1,5 +1,6 @@
/* Motorola 68HC11/68HC12-specific support for 32-bit ELF
Copyright 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
Copyright 2003, 2004, 2005, 2006, 2007, 2009, 2010
Free Software Foundation, Inc.
Contributed by Stephane Carrez (stcarrez@nerim.fr)
This file is part of BFD, the Binary File Descriptor library.
@ -42,8 +43,8 @@ extern bfd_boolean _bfd_m68hc11_elf_print_private_bfd_data (bfd*, void*);
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. */
struct elf32_m68hc11_stub_hash_entry {
struct elf32_m68hc11_stub_hash_entry
{
/* Base hash table entry structure. */
struct bfd_hash_entry root;
@ -83,9 +84,8 @@ struct elf32_m68hc11_stub_hash_entry {
less or equal to the page size)
For 68HC12, the window is at 0x8000 and the page size is 16K (full window).
For 68HC11 this is board specific (implemented by external hardware).
For 68HC11 this is board specific (implemented by external hardware). */
*/
struct m68hc11_page_info
{
bfd_vma bank_virtual;
@ -113,7 +113,7 @@ struct m68hc11_elf_link_hash_table
asection* tramp_section;
/* Linker call-backs. */
asection * (*add_stub_section) PARAMS ((const char *, asection *));
asection * (*add_stub_section) (const char *, asection *);
/* Assorted information used by elf32_hppa_size_stubs. */
unsigned int bfd_count;
@ -123,14 +123,15 @@ struct m68hc11_elf_link_hash_table
/* Small local sym cache. */
struct sym_cache sym_cache;
bfd_boolean (* size_one_stub) PARAMS((struct bfd_hash_entry*, void*));
bfd_boolean (* build_one_stub) PARAMS((struct bfd_hash_entry*, void*));
bfd_boolean (* size_one_stub) (struct bfd_hash_entry*, void*);
bfd_boolean (* 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) \
((struct m68hc11_elf_link_hash_table *) ((p)->hash))
(elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \
== M68HC11_ELF_DATA ? ((struct m68hc11_elf_link_hash_table *) ((p)->hash)) : NULL)
/* Create a 68HC11/68HC12 ELF linker hash table. */