diff options
-rw-r--r-- | bfd/ChangeLog | 11 | ||||
-rw-r--r-- | bfd/coff-mcore.c | 7 | ||||
-rw-r--r-- | bfd/elf32-pj.c | 2 | ||||
-rw-r--r-- | bfd/nlm32-sparc.c | 252 | ||||
-rw-r--r-- | bfd/oasys.c | 32 | ||||
-rw-r--r-- | bfd/pdp11.c | 30 | ||||
-rw-r--r-- | bfd/pe-mips.c | 12 | ||||
-rw-r--r-- | bfd/riscix.c | 18 | ||||
-rw-r--r-- | bfd/sparclynx.c | 83 |
9 files changed, 250 insertions, 197 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d0e63e2..a08ac80 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,14 @@ +2001-08-28 Nick Clifton <nickc@cambridge.redhat.com> + + * sparclynx.c: Add missing prototypes. + * coff-mcore.c: Add missing prototypes. + * elf32-pj.c: Add missing prototypes. + * nlm32-sparc.c: Add missing prototypes. + * oasys.c: Add missing prototypes. + * pdp11.c: Add missing prototypes. + * pe-mips.c: Add missing prototypes. + * riscix.c: Add missing prototypes. + 2001-08-27 Daniel Jacobowitz <drow@mvista.com> * elf32-i386.c: Add missing prototypes. diff --git a/bfd/coff-mcore.c b/bfd/coff-mcore.c index cd38044..0158eb2 100644 --- a/bfd/coff-mcore.c +++ b/bfd/coff-mcore.c @@ -52,6 +52,10 @@ static reloc_howto_type * mcore_coff_reloc_type_lookup static reloc_howto_type * coff_mcore_rtype_to_howto PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); +static void mcore_emit_base_file_entry + PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_vma)); +static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +static struct bfd_link_hash_table * coff_mcore_link_hash_table_create PARAMS ((bfd *)); /* The NT loader points the toc register to &toc + 32768, in order to use the complete range of a 16-bit displacement. We have to adjust @@ -217,6 +221,7 @@ mcore_hash_table; ((mcore_hash_table *) ((info)->hash)) /* Create an MCore coff linker hash table. */ + static struct bfd_link_hash_table * coff_mcore_link_hash_table_create (abfd) bfd * abfd; @@ -244,6 +249,7 @@ coff_mcore_link_hash_table_create (abfd) } /* Add an entry to the base file. */ + static void mcore_emit_base_file_entry (info, output_bfd, input_section, reloc_offset) struct bfd_link_info * info; @@ -352,6 +358,7 @@ coff_mcore_rtype_to_howto (abfd, sec, rel, h, sym, addendp) /* Return true if this relocation should appear in the output .reloc section. This function is referenced in pe_mkobject in peicode.h. */ + static boolean in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; diff --git a/bfd/elf32-pj.c b/bfd/elf32-pj.c index d98b1b3..4d48c8d 100644 --- a/bfd/elf32-pj.c +++ b/bfd/elf32-pj.c @@ -31,6 +31,8 @@ static reloc_howto_type *pj_elf_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void pj_elf_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static void pj_elf_final_write_processing + PARAMS ((bfd *, boolean)); static reloc_howto_type pj_elf_howto_table[] = { diff --git a/bfd/nlm32-sparc.c b/bfd/nlm32-sparc.c index 154a962..6048cb5 100644 --- a/bfd/nlm32-sparc.c +++ b/bfd/nlm32-sparc.c @@ -1,21 +1,21 @@ /* Support for 32-bit SPARC NLM (NetWare Loadable Module) - Copyright 1993, 1994, 2000 Free Software Foundation, Inc. + Copyright 1993, 1994, 2000, 2001 Free Software Foundation, Inc. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "bfd.h" #include "sysdep.h" @@ -40,6 +40,8 @@ static boolean nlm_sparc_write_import PARAMS ((bfd *, asection *, arelent *)); static boolean nlm_sparc_write_external PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); +static boolean nlm_sparc_write_export + PARAMS ((bfd *, asymbol *, bfd_vma)); enum reloc_type { @@ -61,59 +63,60 @@ enum reloc_type #if 0 static CONST char *CONST reloc_type_names[] = -{ - "R_SPARC_NONE", - "R_SPARC_8", "R_SPARC_16", "R_SPARC_32", - "R_SPARC_DISP8", "R_SPARC_DISP16", "R_SPARC_DISP32", - "R_SPARC_WDISP30", "R_SPARC_WDISP22", - "R_SPARC_HI22", "R_SPARC_22", - "R_SPARC_13", "R_SPARC_LO10", - "R_SPARC_GOT10", "R_SPARC_GOT13", "R_SPARC_GOT22", - "R_SPARC_PC10", "R_SPARC_PC22", - "R_SPARC_WPLT30", - "R_SPARC_COPY", - "R_SPARC_GLOB_DAT", "R_SPARC_JMP_SLOT", - "R_SPARC_RELATIVE", - "R_SPARC_UA32", -}; + { + "R_SPARC_NONE", + "R_SPARC_8", "R_SPARC_16", "R_SPARC_32", + "R_SPARC_DISP8", "R_SPARC_DISP16", "R_SPARC_DISP32", + "R_SPARC_WDISP30", "R_SPARC_WDISP22", + "R_SPARC_HI22", "R_SPARC_22", + "R_SPARC_13", "R_SPARC_LO10", + "R_SPARC_GOT10", "R_SPARC_GOT13", "R_SPARC_GOT22", + "R_SPARC_PC10", "R_SPARC_PC22", + "R_SPARC_WPLT30", + "R_SPARC_COPY", + "R_SPARC_GLOB_DAT", "R_SPARC_JMP_SLOT", + "R_SPARC_RELATIVE", + "R_SPARC_UA32", + }; #endif static reloc_howto_type nlm32_sparc_howto_table[] = -{ - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, 0,"R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,0,"R_SPARC_8", false,0,0x000000ff,true), - HOWTO(R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,0,"R_SPARC_16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,0,"R_SPARC_32", false,0,0xffffffff,true), - HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP8", false,0,0x000000ff,true), - HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP32", false,0,0x00ffffff,true), - HOWTO(R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, 0,"R_SPARC_WDISP30", false,0,0x3fffffff,true), - HOWTO(R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, 0,"R_SPARC_WDISP22", false,0,0x003fffff,true), - HOWTO(R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, 0,"R_SPARC_HI22", false,0,0x003fffff,true), - HOWTO(R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_22", false,0,0x003fffff,true), - HOWTO(R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_13", false,0,0x00001fff,true), - HOWTO(R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, 0,"R_SPARC_LO10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT13", false,0,0x00001fff,true), - HOWTO(R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT22", false,0,0x003fffff,true), - HOWTO(R_SPARC_PC10, 0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_PC10", false,0,0x000003ff,true), - HOWTO(R_SPARC_PC22, 0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_PC22", false,0,0x003fffff,true), - HOWTO(R_SPARC_WPLT30, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_WPLT30", false,0,0x00000000,true), - HOWTO(R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_COPY", false,0,0x00000000,true), - HOWTO(R_SPARC_GLOB_DAT,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_GLOB_DAT",false,0,0x00000000,true), - HOWTO(R_SPARC_JMP_SLOT,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_JMP_SLOT",false,0,0x00000000,true), - HOWTO(R_SPARC_RELATIVE,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_RELATIVE",false,0,0x00000000,true), - HOWTO(R_SPARC_UA32, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_UA32", false,0,0x00000000,true), + { + HOWTO (R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, 0,"R_SPARC_NONE", false,0,0x00000000,true), + HOWTO (R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,0,"R_SPARC_8", false,0,0x000000ff,true), + HOWTO (R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,0,"R_SPARC_16", false,0,0x0000ffff,true), + HOWTO (R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,0,"R_SPARC_32", false,0,0xffffffff,true), + HOWTO (R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP8", false,0,0x000000ff,true), + HOWTO (R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP16", false,0,0x0000ffff,true), + HOWTO (R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP32", false,0,0x00ffffff,true), + HOWTO (R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, 0,"R_SPARC_WDISP30", false,0,0x3fffffff,true), + HOWTO (R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, 0,"R_SPARC_WDISP22", false,0,0x003fffff,true), + HOWTO (R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, 0,"R_SPARC_HI22", false,0,0x003fffff,true), + HOWTO (R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_22", false,0,0x003fffff,true), + HOWTO (R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_13", false,0,0x00001fff,true), + HOWTO (R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, 0,"R_SPARC_LO10", false,0,0x000003ff,true), + HOWTO (R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT10", false,0,0x000003ff,true), + HOWTO (R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT13", false,0,0x00001fff,true), + HOWTO (R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT22", false,0,0x003fffff,true), + HOWTO (R_SPARC_PC10, 0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_PC10", false,0,0x000003ff,true), + HOWTO (R_SPARC_PC22, 0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_PC22", false,0,0x003fffff,true), + HOWTO (R_SPARC_WPLT30, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_WPLT30", false,0,0x00000000,true), + HOWTO (R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_COPY", false,0,0x00000000,true), + HOWTO (R_SPARC_GLOB_DAT,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_GLOB_DAT",false,0,0x00000000,true), + HOWTO (R_SPARC_JMP_SLOT,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_JMP_SLOT",false,0,0x00000000,true), + HOWTO (R_SPARC_RELATIVE,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_RELATIVE",false,0,0x00000000,true), + HOWTO (R_SPARC_UA32, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_UA32", false,0,0x00000000,true), }; /* Read a NetWare sparc reloc. */ -struct nlm32_sparc_reloc_ext { - unsigned char offset[4]; - unsigned char addend[4]; - unsigned char type[1]; - unsigned char pad1[3]; -}; +struct nlm32_sparc_reloc_ext + { + unsigned char offset[4]; + unsigned char addend[4]; + unsigned char type[1]; + unsigned char pad1[3]; + }; static boolean nlm_sparc_read_reloc (abfd, sym, secp, rel) @@ -147,10 +150,11 @@ nlm_sparc_read_reloc (abfd, sym, secp, rel) for (index = 0; index < sizeof (nlm32_sparc_howto_table) / sizeof (reloc_howto_type); index++) - if (nlm32_sparc_howto_table[index].type == type) { - rel->howto = &nlm32_sparc_howto_table[index]; - break; - } + if (nlm32_sparc_howto_table[index].type == type) + { + rel->howto = &nlm32_sparc_howto_table[index]; + break; + } #ifdef DEBUG fprintf (stderr, "%s: address = %08lx, addend = %08lx, type = %d, howto = %08lx\n", @@ -176,31 +180,31 @@ nlm_sparc_write_reloc (abfd, sec, rel) for (index = 0; index < sizeof (nlm32_sparc_howto_table) / sizeof (reloc_howto_type); - index++) { - tmp = &nlm32_sparc_howto_table[index]; - - if (tmp->rightshift == rel->howto->rightshift - && tmp->size == rel->howto->size - && tmp->bitsize == rel->howto->bitsize - && tmp->pc_relative == rel->howto->pc_relative - && tmp->bitpos == rel->howto->bitpos - && tmp->src_mask == rel->howto->src_mask - && tmp->dst_mask == rel->howto->dst_mask) { - type = tmp->type; - break; + index++) + { + tmp = &nlm32_sparc_howto_table[index]; + + if (tmp->rightshift == rel->howto->rightshift + && tmp->size == rel->howto->size + && tmp->bitsize == rel->howto->bitsize + && tmp->pc_relative == rel->howto->pc_relative + && tmp->bitpos == rel->howto->bitpos + && tmp->src_mask == rel->howto->src_mask + && tmp->dst_mask == rel->howto->dst_mask) + { + type = tmp->type; + break; + } } - } if (type == -1) abort (); - /* - * Netware wants a list of relocs for each address. - * Format is: - * long offset - * long addend - * char type - * That should be it. - */ + /* Netware wants a list of relocs for each address. + Format is: + long offset + long addend + char type + That should be it. */ /* The value we write out is the offset into the appropriate segment. This offset is the section vma, adjusted by the vma of @@ -240,30 +244,27 @@ nlm_sparc_mangle_relocs (abfd, sec, data, offset, count) return true; } -/* Read a NetWare sparc import record */ +/* Read a NetWare sparc import record. */ + static boolean nlm_sparc_read_import (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; { - struct nlm_relent *nlm_relocs; /* relocation records for symbol */ - bfd_size_type rcount; /* number of relocs */ - bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* temporary 32-bit value */ - unsigned char symlength; /* length of symbol name */ + struct nlm_relent *nlm_relocs; /* Relocation records for symbol. */ + bfd_size_type rcount; /* Number of relocs. */ + bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Temporary 32-bit value. */ + unsigned char symlength; /* Length of symbol name. */ char *name; - /* - * First, read in the number of relocation - * entries for this symbol - */ + /* First, read in the number of relocation + entries for this symbol. */ if (bfd_read ((PTR) temp, 4, 1, abfd) != 4) return false; rcount = bfd_get_32 (abfd, temp); - /* - * Next, read in the length of the symbol - */ + /* Next, read in the length of the symbol. */ if (bfd_read ((PTR) &symlength, sizeof (symlength), 1, abfd) != sizeof (symlength)) @@ -273,9 +274,7 @@ nlm_sparc_read_import (abfd, sym) if (name == NULL) return false; - /* - * Then read in the symbol - */ + /* Then read in the symbol. */ if (bfd_read (name, symlength, 1, abfd) != symlength) return false; @@ -285,9 +284,7 @@ nlm_sparc_read_import (abfd, sym) sym -> symbol.value = 0; sym -> symbol.section = bfd_und_section_ptr; - /* - * Next, start reading in the relocs. - */ + /* Next, start reading in the relocs. */ nlm_relocs = ((struct nlm_relent *) bfd_alloc (abfd, rcount * sizeof (struct nlm_relent))); @@ -307,6 +304,7 @@ nlm_sparc_read_import (abfd, sym) nlm_relocs++; sym -> rcnt++; } + return true; } @@ -325,13 +323,13 @@ nlm_sparc_write_import (abfd, sec, rel) bss = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); symsec = (*rel->sym_ptr_ptr)->section; - if (symsec == code) { + if (symsec == code) base = 0; - } else if (symsec == data) { + else if (symsec == data) base = bfd_section_size (abfd, code); - } else if (symsec == bss) { + else if (symsec == bss) base = bfd_section_size (abfd, code) + bfd_section_size (abfd, data); - } else + else base = 0; #ifdef DEBUG @@ -411,29 +409,29 @@ nlm_sparc_write_export (abfd, sym, value) #include "nlmswap.h" static const struct nlm_backend_data nlm32_sparc_backend = -{ - "NetWare SPARC Module \032", - sizeof (Nlm32_sparc_External_Fixed_Header), - 0, /* optional_prefix_size */ - bfd_arch_sparc, - 0, - false, - 0, /* backend_object_p */ - 0, /* write_prefix_func */ - nlm_sparc_read_reloc, - nlm_sparc_mangle_relocs, - nlm_sparc_read_import, - nlm_sparc_write_import, - 0, /* set_public_section */ - 0, /* get_public_offset */ - nlm_swap_fixed_header_in, - nlm_swap_fixed_header_out, - nlm_sparc_write_external, - nlm_sparc_write_export -}; + { + "NetWare SPARC Module \032", + sizeof (Nlm32_sparc_External_Fixed_Header), + 0, /* optional_prefix_size */ + bfd_arch_sparc, + 0, + false, + 0, /* backend_object_p */ + 0, /* write_prefix_func */ + nlm_sparc_read_reloc, + nlm_sparc_mangle_relocs, + nlm_sparc_read_import, + nlm_sparc_write_import, + 0, /* set_public_section */ + 0, /* get_public_offset */ + nlm_swap_fixed_header_in, + nlm_swap_fixed_header_out, + nlm_sparc_write_external, + nlm_sparc_write_export + }; #define TARGET_BIG_NAME "nlm32-sparc" #define TARGET_BIG_SYM nlmNAME(sparc_vec) -#define TARGET_BACKEND_DATA &nlm32_sparc_backend +#define TARGET_BACKEND_DATA & nlm32_sparc_backend #include "nlm-target.h" diff --git a/bfd/oasys.c b/bfd/oasys.c index 02b0e22..ab836a5 100644 --- a/bfd/oasys.c +++ b/bfd/oasys.c @@ -3,21 +3,21 @@ Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support, <sac@cygnus.com>. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define UNDERSCORE_HACK 1 #include "bfd.h" @@ -61,7 +61,10 @@ static boolean oasys_find_nearest_line static int oasys_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); static int oasys_sizeof_headers PARAMS ((bfd *, boolean)); -/* Read in all the section data and relocation stuff too */ +long oasys_get_symtab PARAMS ((bfd *, asymbol **)); +long oasys_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); + +/* Read in all the section data and relocation stuff too. */ PROTO (static boolean, oasys_slurp_section_data, (bfd * CONST abfd)); static boolean @@ -240,9 +243,6 @@ oasys_get_symtab_upper_bound (abfd) return (abfd->symcount + 1) * (sizeof (oasys_symbol_type *)); } -/* -*/ - extern const bfd_target oasys_vec; long diff --git a/bfd/pdp11.c b/bfd/pdp11.c index 3b60b03..7c95b87 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -1,21 +1,21 @@ /* BFD back-end for PDP-11 a.out binaries. Copyright 2001 Free Software Foundation, Inc. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* BFD backend for PDP-11, running 2.11BSD in particular. @@ -363,6 +363,12 @@ static void adjust_o_magic PARAMS ((bfd *, struct internal_exec *)); static void adjust_z_magic PARAMS ((bfd *, struct internal_exec *)); static void adjust_n_magic PARAMS ((bfd *, struct internal_exec *)); +static int pdp11_aout_write_headers PARAMS ((bfd *, struct internal_exec *)); +void pdp11_aout_swap_reloc_out PARAMS ((bfd *, arelent *, struct pdp11_aout_reloc_external *)); +void pdp11_aout_swap_reloc_in +PARAMS ((bfd *, struct pdp11_aout_reloc_external *, arelent *, + bfd_size_type, asymbol **, bfd_size_type)); + /* SUBSECTION Relocations diff --git a/bfd/pe-mips.c b/bfd/pe-mips.c index 62395ce..318d0bd 100644 --- a/bfd/pe-mips.c +++ b/bfd/pe-mips.c @@ -54,6 +54,15 @@ static void mips_adjust_reloc_in PARAMS ((bfd *, static void mips_adjust_reloc_out PARAMS ((bfd *, const arelent *, struct internal_reloc *)); #endif + +static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +static reloc_howto_type * coff_mips_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); +static void mips_swap_reloc_in PARAMS ((bfd *, PTR, PTR)); +static unsigned int mips_swap_reloc_out PARAMS ((bfd *, PTR, PTR)); +static boolean coff_pe_mips_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + struct internal_reloc *, struct internal_syment *, asection **)); + #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2) /* The page size is a guess based on ELF. */ @@ -169,7 +178,8 @@ coff_mips_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, /* Return true if this relocation should appear in the output .reloc section. */ -static boolean in_reloc_p(abfd, howto) +static boolean +in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type *howto; { diff --git a/bfd/riscix.c b/bfd/riscix.c index f5a9ec9..956ba47 100644 --- a/bfd/riscix.c +++ b/bfd/riscix.c @@ -143,6 +143,24 @@ riscix_fix_pcrel_26_done PARAMS ((bfd *, arelent *, asymbol *, PTR, static bfd_reloc_status_type riscix_fix_pcrel_26 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static const bfd_target * +MY (object_p) PARAMS ((bfd *)); + +reloc_howto_type * +riscix_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); + +void +riscix_swap_std_reloc_out PARAMS ((bfd *, arelent *, struct reloc_std_external *)); + +boolean +riscix_squirt_out_relocs PARAMS ((bfd *, asection *)); + +long +MY (canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); + +const bfd_target * +riscix_some_aout_object_p PARAMS ((bfd *, struct internal_exec *, const bfd_target *(*) (bfd *))); + static reloc_howto_type riscix_std_reloc_howto[] = { /* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone */ diff --git a/bfd/sparclynx.c b/bfd/sparclynx.c index 08f7a2f..3d98ff3 100644 --- a/bfd/sparclynx.c +++ b/bfd/sparclynx.c @@ -1,6 +1,6 @@ /* BFD support for Sparc binaries under LynxOS. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000 - Free Software Foundation, Inc. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, + 2001 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #endif -#define MY(OP) CAT(sparclynx_aout_,OP) +#define MY(OP) CAT (sparclynx_aout_,OP) #define TARGETNAME "a.out-sparc-lynx" #include "bfd.h" @@ -43,6 +43,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "aout/stab_gnu.h" #include "aout/ar.h" +void NAME (lynx,set_arch_mach) PARAMS ((bfd *, int)); +static void choose_reloc_size PARAMS ((bfd *)); +static boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *)); + /* This is needed to reject a NewsOS file, e.g. in gdb/testsuite/gdb.t10/crossload.exp. <kingdon@cygnus.com> I needed to add M_UNKNOWN to recognize a 68000 object, so this will @@ -52,30 +56,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ || (mtype) == M_68020 \ || (mtype) == M_SPARC) -/* -The file @code{aoutf1.h} contains the code for BFD's -a.out back end. Control over the generated back end is given by these -two preprocessor names: -@table @code -@item ARCH_SIZE -This value should be either 32 or 64, depending upon the size of an -int in the target format. It changes the sizes of the structs which -perform the memory/disk mapping of structures. - -The 64 bit backend may only be used if the host compiler supports 64 -ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}. -With this name defined, @emph{all} bfd operations are performed with 64bit -arithmetic, not just those to a 64bit target. - -@item TARGETNAME -The name put into the target vector. -@item -@end table - -*/ - -/*SUPPRESS558*/ -/*SUPPRESS529*/ +/* The file @code{aoutf1.h} contains the code for BFD's + a.out back end. Control over the generated back end is given by these + two preprocessor names: + @table @code + @item ARCH_SIZE + This value should be either 32 or 64, depending upon the size of an + int in the target format. It changes the sizes of the structs which + perform the memory/disk mapping of structures. + + The 64 bit backend may only be used if the host compiler supports 64 + ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}. + With this name defined, @emph{all} bfd operations are performed with 64bit + arithmetic, not just those to a 64bit target. + + @item TARGETNAME + The name put into the target vector. + @item + @end table */ void NAME(lynx,set_arch_mach) (abfd, machtype) @@ -85,9 +83,9 @@ NAME(lynx,set_arch_mach) (abfd, machtype) /* Determine the architecture and machine type of the object file. */ enum bfd_architecture arch; long machine; + switch (machtype) { - case M_UNKNOWN: /* Some Sun3s make magic numbers without cpu types in them, so we'll default to the 68000. */ @@ -140,7 +138,8 @@ NAME(lynx,set_arch_mach) (abfd, machtype) NAME(lynx,set_arch_mach) (ABFD, N_MACHTYPE (EXEC)); \ choose_reloc_size(ABFD); -/* Determine the size of a relocation entry, based on the architecture */ +/* Determine the size of a relocation entry, based on the architecture. */ + static void choose_reloc_size (abfd) bfd *abfd; @@ -206,6 +205,8 @@ NAME(aout,sparclynx_write_object_contents) (abfd) } #define MY_set_sizes sparclynx_set_sizes +static boolean sparclynx_set_sizes PARAMS ((bfd *)); + static boolean sparclynx_set_sizes (abfd) bfd *abfd; @@ -228,15 +229,15 @@ sparclynx_set_sizes (abfd) } static CONST struct aout_backend_data sparclynx_aout_backend = -{ - 0, 1, 0, 1, 0, sparclynx_set_sizes, 0, - 0, /* add_dynamic_symbols */ - 0, /* add_one_symbol */ - 0, /* link_dynamic_object */ - 0, /* write_dynamic_symbol */ - 0, /* check_dynamic_reloc */ - 0 /* finish_dynamic_link */ -}; + { + 0, 1, 0, 1, 0, sparclynx_set_sizes, 0, + 0, /* add_dynamic_symbols */ + 0, /* add_one_symbol */ + 0, /* link_dynamic_object */ + 0, /* write_dynamic_symbol */ + 0, /* check_dynamic_reloc */ + 0 /* finish_dynamic_link */ + }; #define MY_bfd_debug_info_start bfd_void @@ -251,10 +252,10 @@ static CONST struct aout_backend_data sparclynx_aout_backend = #ifdef LYNX_CORE -char *lynx_core_file_failing_command (); -int lynx_core_file_failing_signal (); +char * lynx_core_file_failing_command (); +int lynx_core_file_failing_signal (); boolean lynx_core_file_matches_executable_p (); -const bfd_target *lynx_core_file_p (); +const bfd_target * lynx_core_file_p (); #define MY_core_file_failing_command lynx_core_file_failing_command #define MY_core_file_failing_signal lynx_core_file_failing_signal |