From 7e8bc19acf12bf18eb98d9c144ad5a7e7f23e9bf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 14 Aug 2001 10:01:29 +0000 Subject: Add missing protypes --- bfd/aout-tic30.c | 84 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 37 deletions(-) (limited to 'bfd/aout-tic30.c') diff --git a/bfd/aout-tic30.c b/bfd/aout-tic30.c index d02cf0d9b5..5d25c209f0 100644 --- a/bfd/aout-tic30.c +++ b/bfd/aout-tic30.c @@ -1,5 +1,5 @@ /* BFD back-end for TMS320C30 a.out binaries. - Copyright 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) This file is part of BFD, the Binary File Descriptor library. @@ -56,6 +56,12 @@ static bfd_reloc_status_type tic30_aout_final_link_relocate static const bfd_target *tic30_aout_object_p PARAMS ((bfd *)); static boolean tic30_aout_write_object_contents PARAMS ((bfd *)); static boolean tic30_aout_set_sizes PARAMS ((bfd *)); +static const bfd_target * tic30_aout_callback PARAMS ((bfd *)); +static boolean MY_bfd_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); +static boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); +reloc_howto_type * tic30_aout_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); +enum machine_type tic30_aout_machine_type PARAMS ((enum bfd_architecture, unsigned long, boolean *)); +boolean tic30_aout_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); #define MY_reloc_howto(BFD,REL,IN,EX,PC) tic30_aout_reloc_howto(BFD,REL,&IN,&EX,&PC) #define MY_final_link_relocate tic30_aout_final_link_relocate @@ -130,26 +136,27 @@ static CONST struct aout_backend_data tic30_aout_backend_data = 2) to get the 32-bit addresses in the format the TMS320C30 likes it. */ reloc_howto_type tic30_aout_howto_table[] = -{ - EMPTY_HOWTO (-1), - HOWTO (1, 2, 1, 16, false, 0, 0, tic30_aout_fix_16, - "16", false, 0x0000FFFF, 0x0000FFFF, false), - HOWTO (2, 2, 2, 24, false, 0, complain_overflow_bitfield, NULL, - "24", false, 0x00FFFFFF, 0x00FFFFFF, false), - HOWTO (3, 18, 3, 24, false, 0, complain_overflow_bitfield, NULL, - "LDP", false, 0x00FF0000, 0x000000FF, false), - HOWTO (4, 2, 4, 32, false, 0, complain_overflow_bitfield, tic30_aout_fix_32, - "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false), - HOWTO (5, 2, 1, 16, true, 0, complain_overflow_signed, - tic30_aout_fix_pcrel_16, "PCREL", true, 0x0000FFFF, 0x0000FFFF, true), - EMPTY_HOWTO (-1), - EMPTY_HOWTO (-1), - EMPTY_HOWTO (-1), - EMPTY_HOWTO (-1), - EMPTY_HOWTO (-1) -}; - -extern reloc_howto_type *NAME (aout, reloc_type_lookup) (); + { + EMPTY_HOWTO (-1), + HOWTO (1, 2, 1, 16, false, 0, 0, tic30_aout_fix_16, + "16", false, 0x0000FFFF, 0x0000FFFF, false), + HOWTO (2, 2, 2, 24, false, 0, complain_overflow_bitfield, NULL, + "24", false, 0x00FFFFFF, 0x00FFFFFF, false), + HOWTO (3, 18, 3, 24, false, 0, complain_overflow_bitfield, NULL, + "LDP", false, 0x00FF0000, 0x000000FF, false), + HOWTO (4, 2, 4, 32, false, 0, complain_overflow_bitfield, tic30_aout_fix_32, + "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false), + HOWTO (5, 2, 1, 16, true, 0, complain_overflow_signed, + tic30_aout_fix_pcrel_16, "PCREL", true, 0x0000FFFF, 0x0000FFFF, true), + EMPTY_HOWTO (-1), + EMPTY_HOWTO (-1), + EMPTY_HOWTO (-1), + EMPTY_HOWTO (-1), + EMPTY_HOWTO (-1) + }; + +extern reloc_howto_type *NAME (aout, reloc_type_lookup) + PARAMS ((bfd *, bfd_reloc_code_real_type)); reloc_howto_type * tic30_aout_reloc_type_lookup (abfd, code) @@ -317,10 +324,10 @@ tic30_aout_callback (abfd) unsigned int arch_align_power; unsigned long arch_align; - /* Calculate the file positions of the parts of a newly read aout header */ + /* Calculate the file positions of the parts of a newly read aout header. */ obj_textsec (abfd)->_raw_size = N_TXTSIZE (*execp); - /* The virtual memory addresses of the sections */ + /* The virtual memory addresses of the sections. */ obj_textsec (abfd)->vma = N_TXTADDR (*execp); obj_datasec (abfd)->vma = N_DATADDR (*execp); obj_bsssec (abfd)->vma = N_BSSADDR (*execp); @@ -329,11 +336,11 @@ tic30_aout_callback (abfd) obj_datasec (abfd)->lma = obj_datasec (abfd)->vma; obj_bsssec (abfd)->lma = obj_bsssec (abfd)->vma; - /* The file offsets of the sections */ + /* The file offsets of the sections. */ obj_textsec (abfd)->filepos = N_TXTOFF (*execp); obj_datasec (abfd)->filepos = N_DATOFF (*execp); - /* The file offsets of the relocation info */ + /* The file offsets of the relocation info. */ obj_textsec (abfd)->rel_filepos = N_TRELOFF (*execp); obj_datasec (abfd)->rel_filepos = N_DRELOFF (*execp); @@ -429,7 +436,9 @@ tic30_aout_relocate_contents (howto, input_bfd, relocation, location) x = bfd_get_32 (input_bfd, location); break; } + overflow = false; + if (howto->complain_on_overflow != complain_overflow_dont) { bfd_vma check; @@ -520,14 +529,14 @@ tic30_aout_relocate_contents (howto, input_bfd, relocation, location) return overflow ? bfd_reloc_overflow : bfd_reloc_ok; } -/* Finish up the reading of an a.out file header */ +/* Finish up the reading of an a.out file header. */ static const bfd_target * tic30_aout_object_p (abfd) bfd *abfd; { - struct external_exec exec_bytes; /* Raw exec header from file */ - struct internal_exec exec; /* Cleaned-up exec header */ + struct external_exec exec_bytes; /* Raw exec header from file. */ + struct internal_exec exec; /* Cleaned-up exec header. */ const bfd_target *target; if (bfd_read ((PTR) & exec_bytes, 1, EXEC_BYTES_SIZE, abfd) @@ -562,10 +571,10 @@ tic30_aout_object_p (abfd) #ifdef ENTRY_CAN_BE_ZERO /* The NEWSOS3 entry-point is/was 0, which (amongst other lossage) - * means that it isn't obvious if EXEC_P should be set. - * All of the following must be true for an executable: - * There must be no relocations, the bfd can be neither an - * archive nor an archive element, and the file must be executable. */ + means that it isn't obvious if EXEC_P should be set. + All of the following must be true for an executable: + There must be no relocations, the bfd can be neither an + archive nor an archive element, and the file must be executable. */ if (exec.a_trsize + exec.a_drsize == 0 && bfd_get_format (abfd) == bfd_object && abfd->my_archive == NULL) @@ -614,8 +623,9 @@ tic30_aout_write_object_contents (abfd) obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; { - bfd_size_type text_size; /* dummy vars */ + bfd_size_type text_size; /* Dummy vars. */ file_ptr text_end; + if (adata (abfd).magic == undecided_magic) NAME (aout, adjust_sizes_and_vmas) (abfd, &text_size, &text_end); @@ -633,8 +643,8 @@ tic30_aout_write_object_contents (abfd) if (bfd_write ((PTR) & exec_bytes, 1, adata (abfd).exec_bytes_size, abfd) != adata (abfd).exec_bytes_size) return false; } - /* Now write out reloc info, followed by syms and strings */ + /* Now write out reloc info, followed by syms and strings. */ if (bfd_get_outsymbols (abfd) != (asymbol **) NULL && bfd_get_symcount (abfd) != 0) { @@ -745,10 +755,10 @@ MY_bfd_final_link (abfd, info) { obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); } + if (obj_datasec (abfd)->vma < vma) - { - obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); - } + obj_datasec (abfd)->vma = BFD_ALIGN (vma, 4); + obj_datasec (abfd)->user_set_vma = 1; vma = obj_datasec (abfd)->vma; obj_datasec (abfd)->filepos = vma + adata (abfd).exec_bytes_size; -- cgit v1.2.1