/[gcl]/gcl/binutils/bfd/aout-tic30.c
ViewVC logotype

Diff of /gcl/binutils/bfd/aout-tic30.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by camm, Fri Aug 9 05:34:42 2002 UTC revision 1.2 by camm, Fri Sep 9 23:32:07 2005 UTC
# Line 1  Line 1 
1  /* BFD back-end for TMS320C30 a.out binaries.  /* BFD back-end for TMS320C30 a.out binaries.
2     Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.     Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
3       Free Software Foundation, Inc.
4     Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)     Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au)
5    
6     This file is part of BFD, the Binary File Descriptor library.     This file is part of BFD, the Binary File Descriptor library.
# Line 21  Line 22 
22    
23  #define TARGET_IS_BIG_ENDIAN_P  #define TARGET_IS_BIG_ENDIAN_P
24  #define N_HEADER_IN_TEXT(x) 1  #define N_HEADER_IN_TEXT(x) 1
 #define BYTES_IN_WORD 4  
25  #define TEXT_START_ADDR 1024  #define TEXT_START_ADDR 1024
26  #define TARGET_PAGE_SIZE 128  #define TARGET_PAGE_SIZE 128
27  #define SEGMENT_SIZE TARGET_PAGE_SIZE  #define SEGMENT_SIZE TARGET_PAGE_SIZE
# Line 56  static bfd_reloc_status_type tic30_aout_ Line 56  static bfd_reloc_status_type tic30_aout_
56  static bfd_reloc_status_type tic30_aout_final_link_relocate  static bfd_reloc_status_type tic30_aout_final_link_relocate
57    PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma,    PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma,
58             bfd_vma, bfd_vma));             bfd_vma, bfd_vma));
59  static const bfd_target *tic30_aout_object_p PARAMS ((bfd *));  static const bfd_target *tic30_aout_object_p
60  static boolean tic30_aout_write_object_contents PARAMS ((bfd *));    PARAMS ((bfd *));
61  static boolean tic30_aout_set_sizes PARAMS ((bfd *));  static bfd_boolean tic30_aout_write_object_contents
62  static const bfd_target * tic30_aout_callback PARAMS ((bfd *));    PARAMS ((bfd *));
63  static boolean MY_bfd_copy_private_section_data  static bfd_boolean tic30_aout_set_sizes
64      PARAMS ((bfd *));
65    static const bfd_target * tic30_aout_callback
66      PARAMS ((bfd *));
67    static bfd_boolean MY_bfd_copy_private_section_data
68    PARAMS ((bfd *, asection *, bfd *, asection *));    PARAMS ((bfd *, asection *, bfd *, asection *));
69  static boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *));  static bfd_boolean MY_bfd_final_link
70      PARAMS ((bfd *, struct bfd_link_info *));
71  reloc_howto_type * tic30_aout_reloc_type_lookup  reloc_howto_type * tic30_aout_reloc_type_lookup
72    PARAMS ((bfd *, bfd_reloc_code_real_type));    PARAMS ((bfd *, bfd_reloc_code_real_type));
73  enum machine_type tic30_aout_machine_type  enum machine_type tic30_aout_machine_type
74    PARAMS ((enum bfd_architecture, unsigned long, boolean *));    PARAMS ((enum bfd_architecture, unsigned long, bfd_boolean *));
75  boolean tic30_aout_set_arch_mach  bfd_boolean tic30_aout_set_arch_mach
76    PARAMS ((bfd *, enum bfd_architecture, unsigned long));    PARAMS ((bfd *, enum bfd_architecture, unsigned long));
77    
78  #define MY_reloc_howto(BFD, REL, IN, EX, PC) \  #define MY_reloc_howto(BFD, REL, IN, EX, PC) \
# Line 146  static const struct aout_backend_data ti Line 151  static const struct aout_backend_data ti
151  reloc_howto_type tic30_aout_howto_table[] =  reloc_howto_type tic30_aout_howto_table[] =
152    {    {
153      EMPTY_HOWTO (-1),      EMPTY_HOWTO (-1),
154      HOWTO (1, 2, 1, 16, false, 0, 0, tic30_aout_fix_16,      HOWTO (1, 2, 1, 16, FALSE, 0, 0, tic30_aout_fix_16,
155             "16", false, 0x0000FFFF, 0x0000FFFF, false),             "16", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE),
156      HOWTO (2, 2, 2, 24, false, 0, complain_overflow_bitfield, NULL,      HOWTO (2, 2, 2, 24, FALSE, 0, complain_overflow_bitfield, NULL,
157             "24", false, 0x00FFFFFF, 0x00FFFFFF, false),             "24", FALSE, 0x00FFFFFF, 0x00FFFFFF, FALSE),
158      HOWTO (3, 18, 3, 24, false, 0, complain_overflow_bitfield, NULL,      HOWTO (3, 18, 3, 24, FALSE, 0, complain_overflow_bitfield, NULL,
159             "LDP", false, 0x00FF0000, 0x000000FF, false),             "LDP", FALSE, 0x00FF0000, 0x000000FF, FALSE),
160      HOWTO (4, 2, 4, 32, false, 0, complain_overflow_bitfield, tic30_aout_fix_32,      HOWTO (4, 2, 4, 32, FALSE, 0, complain_overflow_bitfield, tic30_aout_fix_32,
161             "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false),             "32", FALSE, 0xFFFFFFFF, 0xFFFFFFFF, FALSE),
162      HOWTO (5, 2, 1, 16, true, 0, complain_overflow_signed,      HOWTO (5, 2, 1, 16, TRUE, 0, complain_overflow_signed,
163             tic30_aout_fix_pcrel_16, "PCREL", true, 0x0000FFFF, 0x0000FFFF, true),             tic30_aout_fix_pcrel_16, "PCREL", TRUE, 0x0000FFFF, 0x0000FFFF, TRUE),
164      EMPTY_HOWTO (-1),      EMPTY_HOWTO (-1),
165      EMPTY_HOWTO (-1),      EMPTY_HOWTO (-1),
166      EMPTY_HOWTO (-1),      EMPTY_HOWTO (-1),
# Line 164  reloc_howto_type tic30_aout_howto_table[ Line 169  reloc_howto_type tic30_aout_howto_table[
169    };    };
170    
171  extern reloc_howto_type *NAME (aout, reloc_type_lookup)  extern reloc_howto_type *NAME (aout, reloc_type_lookup)
172       PARAMS ((bfd *, bfd_reloc_code_real_type));    PARAMS ((bfd *, bfd_reloc_code_real_type));
173    
174  reloc_howto_type *  reloc_howto_type *
175  tic30_aout_reloc_type_lookup (abfd, code)  tic30_aout_reloc_type_lookup (abfd, code)
# Line 333  tic30_aout_callback (abfd) Line 338  tic30_aout_callback (abfd)
338    unsigned long arch_align;    unsigned long arch_align;
339    
340    /* 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.  */
341    obj_textsec (abfd)->_raw_size = N_TXTSIZE (*execp);    obj_textsec (abfd)->size = N_TXTSIZE (*execp);
342    
343    /* The virtual memory addresses of the sections.  */    /* The virtual memory addresses of the sections.  */
344    obj_textsec (abfd)->vma = N_TXTADDR (*execp);    obj_textsec (abfd)->vma = N_TXTADDR (*execp);
# Line 371  tic30_aout_callback (abfd) Line 376  tic30_aout_callback (abfd)
376       of the section.  */       of the section.  */
377    arch_align_power = bfd_get_arch_info (abfd)->section_align_power;    arch_align_power = bfd_get_arch_info (abfd)->section_align_power;
378    arch_align = 1 << arch_align_power;    arch_align = 1 << arch_align_power;
379    if ((BFD_ALIGN (obj_textsec (abfd)->_raw_size, arch_align)    if ((BFD_ALIGN (obj_textsec (abfd)->size, arch_align)
380         == obj_textsec (abfd)->_raw_size)         == obj_textsec (abfd)->size)
381        && (BFD_ALIGN (obj_datasec (abfd)->_raw_size, arch_align)        && (BFD_ALIGN (obj_datasec (abfd)->size, arch_align)
382            == obj_datasec (abfd)->_raw_size)            == obj_datasec (abfd)->size)
383        && (BFD_ALIGN (obj_bsssec (abfd)->_raw_size, arch_align)        && (BFD_ALIGN (obj_bsssec (abfd)->size, arch_align)
384            == obj_bsssec (abfd)->_raw_size))            == obj_bsssec (abfd)->size))
385      {      {
386        obj_textsec (abfd)->alignment_power = arch_align_power;        obj_textsec (abfd)->alignment_power = arch_align_power;
387        obj_datasec (abfd)->alignment_power = arch_align_power;        obj_datasec (abfd)->alignment_power = arch_align_power;
# Line 398  tic30_aout_final_link_relocate (howto, i Line 403  tic30_aout_final_link_relocate (howto, i
403  {  {
404    bfd_vma relocation;    bfd_vma relocation;
405    
406    if (address > input_section->_raw_size)    if (address > bfd_get_section_limit (input_bfd, input_section))
407      return bfd_reloc_outofrange;      return bfd_reloc_outofrange;
408    
409    relocation = value + addend;    relocation = value + addend;
# Line 420  tic30_aout_relocate_contents (howto, inp Line 425  tic30_aout_relocate_contents (howto, inp
425       bfd_byte *location;       bfd_byte *location;
426  {  {
427    bfd_vma x;    bfd_vma x;
428    boolean overflow;    bfd_boolean overflow;
429    
430    if (howto->size < 0)    if (howto->size < 0)
431      relocation = -relocation;      relocation = -relocation;
# Line 445  tic30_aout_relocate_contents (howto, inp Line 450  tic30_aout_relocate_contents (howto, inp
450        break;        break;
451      }      }
452    
453    overflow = false;    overflow = FALSE;
454    
455    if (howto->complain_on_overflow != complain_overflow_dont)    if (howto->complain_on_overflow != complain_overflow_dont)
456      {      {
# Line 491  tic30_aout_relocate_contents (howto, inp Line 496  tic30_aout_relocate_contents (howto, inp
496              bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;              bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;
497              bfd_signed_vma reloc_signed_min = ~reloc_signed_max;              bfd_signed_vma reloc_signed_min = ~reloc_signed_max;
498              if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)              if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)
499                overflow = true;                overflow = TRUE;
500            }            }
501            break;            break;
502          case complain_overflow_unsigned:          case complain_overflow_unsigned:
503            {            {
504              bfd_vma reloc_unsigned_max = (((1 << (howto->bitsize - 1)) - 1) << 1) | 1;              bfd_vma reloc_unsigned_max = (((1 << (howto->bitsize - 1)) - 1) << 1) | 1;
505              if (check > reloc_unsigned_max)              if (check > reloc_unsigned_max)
506                overflow = true;                overflow = TRUE;
507            }            }
508            break;            break;
509          case complain_overflow_bitfield:          case complain_overflow_bitfield:
# Line 507  tic30_aout_relocate_contents (howto, inp Line 512  tic30_aout_relocate_contents (howto, inp
512              if ((check & ~reloc_bits) != 0              if ((check & ~reloc_bits) != 0
513                  && (((bfd_vma) signed_check & ~reloc_bits)                  && (((bfd_vma) signed_check & ~reloc_bits)
514                      != ((bfd_vma) -1 & ~reloc_bits)))                      != ((bfd_vma) -1 & ~reloc_bits)))
515                overflow = true;                overflow = TRUE;
516            }            }
517            break;            break;
518          default:          default:
# Line 607  tic30_aout_object_p (abfd) Line 612  tic30_aout_object_p (abfd)
612     section contents, and copy_private_bfd_data is not called until     section contents, and copy_private_bfd_data is not called until
613     after the section contents have been set.  */     after the section contents have been set.  */
614    
615  static boolean  static bfd_boolean
616  MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)  MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec)
617       bfd *ibfd;       bfd *ibfd;
618       asection *isec ATTRIBUTE_UNUSED;       asection *isec ATTRIBUTE_UNUSED;
# Line 616  MY_bfd_copy_private_section_data (ibfd, Line 621  MY_bfd_copy_private_section_data (ibfd,
621  {  {
622    if (bfd_get_flavour (obfd) == bfd_target_aout_flavour)    if (bfd_get_flavour (obfd) == bfd_target_aout_flavour)
623      obj_aout_subformat (obfd) = obj_aout_subformat (ibfd);      obj_aout_subformat (obfd) = obj_aout_subformat (ibfd);
624    return true;    return TRUE;
625  }  }
626    
627  /* Write an object file.  /* Write an object file.
628     Section contents have already been written.  We write the     Section contents have already been written.  We write the
629     file header, symbols, and relocation.  */     file header, symbols, and relocation.  */
630    
631  static boolean  static bfd_boolean
632  tic30_aout_write_object_contents (abfd)  tic30_aout_write_object_contents (abfd)
633       bfd *abfd;       bfd *abfd;
634  {  {
# Line 650  tic30_aout_write_object_contents (abfd) Line 655  tic30_aout_write_object_contents (abfd)
655        {        {
656          bfd_size_type amt;          bfd_size_type amt;
657          if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)          if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0)
658            return false;            return FALSE;
659          amt = adata (abfd).exec_bytes_size;          amt = adata (abfd).exec_bytes_size;
660          if (bfd_bwrite ((PTR) &exec_bytes, amt, abfd) != amt)          if (bfd_bwrite ((PTR) &exec_bytes, amt, abfd) != amt)
661            return false;            return FALSE;
662        }        }
663    
664      /* Now write out reloc info, followed by syms and strings.  */      /* Now write out reloc info, followed by syms and strings.  */
# Line 661  tic30_aout_write_object_contents (abfd) Line 666  tic30_aout_write_object_contents (abfd)
666          && bfd_get_symcount (abfd) != 0)          && bfd_get_symcount (abfd) != 0)
667        {        {
668          if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*execp)), SEEK_SET) != 0)          if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*execp)), SEEK_SET) != 0)
669            return false;            return FALSE;
670    
671          if (!NAME (aout, write_syms) (abfd))          if (!NAME (aout, write_syms) (abfd))
672            return false;            return FALSE;
673        }        }
674    
675      if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*execp)), SEEK_SET) != 0)      if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*execp)), SEEK_SET) != 0)
676        return false;        return FALSE;
677      if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))      if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd)))
678        return false;        return FALSE;
679    
680      if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp)), SEEK_SET) != 0)      if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp)), SEEK_SET) != 0)
681        return false;        return FALSE;
682      if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))      if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd)))
683        return false;        return FALSE;
684    }    }
685    
686    return true;    return TRUE;
687  }  }
688    
689  static boolean  static bfd_boolean
690  tic30_aout_set_sizes (abfd)  tic30_aout_set_sizes (abfd)
691       bfd *abfd;       bfd *abfd;
692  {  {
# Line 701  tic30_aout_set_sizes (abfd) Line 706  tic30_aout_set_sizes (abfd)
706    
707    adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;    adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
708    
709    return true;    return TRUE;
710  }  }
711    
712  #ifndef MY_final_link_callback  #ifndef MY_final_link_callback
# Line 732  MY_final_link_callback (abfd, ptreloff, Line 737  MY_final_link_callback (abfd, ptreloff,
737  /* Final link routine.  We need to use a call back to get the correct  /* Final link routine.  We need to use a call back to get the correct
738     offsets in the output file.  */     offsets in the output file.  */
739    
740  static boolean  static bfd_boolean
741  MY_bfd_final_link (abfd, info)  MY_bfd_final_link (abfd, info)
742       bfd *abfd;       bfd *abfd;
743       struct bfd_link_info *info;       struct bfd_link_info *info;
# Line 752  MY_bfd_final_link (abfd, info) Line 757  MY_bfd_final_link (abfd, info)
757    obj_textsec (abfd)->filepos = pos;    obj_textsec (abfd)->filepos = pos;
758    obj_textsec (abfd)->vma = vma;    obj_textsec (abfd)->vma = vma;
759    obj_textsec (abfd)->user_set_vma = 1;    obj_textsec (abfd)->user_set_vma = 1;
760    pos += obj_textsec (abfd)->_raw_size;    pos += obj_textsec (abfd)->size;
761    vma += obj_textsec (abfd)->_raw_size;    vma += obj_textsec (abfd)->size;
762    
763    /* Data.  */    /* Data.  */
764    if (abfd->flags & D_PAGED)    if (abfd->flags & D_PAGED)
# Line 775  MY_bfd_final_link (abfd, info) Line 780  MY_bfd_final_link (abfd, info)
780    vma = obj_datasec (abfd)->vma;    vma = obj_datasec (abfd)->vma;
781    obj_datasec (abfd)->filepos = vma + adata (abfd).exec_bytes_size;    obj_datasec (abfd)->filepos = vma + adata (abfd).exec_bytes_size;
782    execp->a_text = vma - obj_textsec (abfd)->vma;    execp->a_text = vma - obj_textsec (abfd)->vma;
783    obj_textsec (abfd)->_raw_size = execp->a_text;    obj_textsec (abfd)->size = execp->a_text;
784    
785    /* Since BSS follows data immediately, see if it needs alignment.  */    /* Since BSS follows data immediately, see if it needs alignment.  */
786    vma += obj_datasec (abfd)->_raw_size;    vma += obj_datasec (abfd)->size;
787    pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma;    pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma;
788    obj_datasec (abfd)->_raw_size += pad;    obj_datasec (abfd)->size += pad;
789    pos += obj_datasec (abfd)->_raw_size;    pos += obj_datasec (abfd)->size;
790    execp->a_data = obj_datasec (abfd)->_raw_size;    execp->a_data = obj_datasec (abfd)->size;
791    
792    /* BSS.  */    /* BSS.  */
793    obj_bsssec (abfd)->vma = vma;    obj_bsssec (abfd)->vma = vma;
# Line 800  enum machine_type Line 805  enum machine_type
805  tic30_aout_machine_type (arch, machine, unknown)  tic30_aout_machine_type (arch, machine, unknown)
806       enum bfd_architecture arch;       enum bfd_architecture arch;
807       unsigned long machine ATTRIBUTE_UNUSED;       unsigned long machine ATTRIBUTE_UNUSED;
808       boolean *unknown;       bfd_boolean *unknown;
809  {  {
810    enum machine_type arch_flags;    enum machine_type arch_flags;
811    
812    arch_flags = M_UNKNOWN;    arch_flags = M_UNKNOWN;
813    *unknown = true;    *unknown = TRUE;
814    
815    switch (arch)    switch (arch)
816      {      {
817      case bfd_arch_tic30:      case bfd_arch_tic30:
818        *unknown = false;        *unknown = FALSE;
819        break;        break;
820      default:      default:
821        arch_flags = M_UNKNOWN;        arch_flags = M_UNKNOWN;
822      }      }
823    if (arch_flags != M_UNKNOWN)    if (arch_flags != M_UNKNOWN)
824      *unknown = false;      *unknown = FALSE;
825    return arch_flags;    return arch_flags;
826  }  }
827    
828  boolean  bfd_boolean
829  tic30_aout_set_arch_mach (abfd, arch, machine)  tic30_aout_set_arch_mach (abfd, arch, machine)
830       bfd *abfd;       bfd *abfd;
831       enum bfd_architecture arch;       enum bfd_architecture arch;
832       unsigned long machine;       unsigned long machine;
833  {  {
834    if (!bfd_default_set_arch_mach (abfd, arch, machine))    if (!bfd_default_set_arch_mach (abfd, arch, machine))
835      return false;      return FALSE;
836    if (arch != bfd_arch_unknown)    if (arch != bfd_arch_unknown)
837      {      {
838        boolean unknown;        bfd_boolean unknown;
839        tic30_aout_machine_type (arch, machine, &unknown);        tic30_aout_machine_type (arch, machine, &unknown);
840        if (unknown)        if (unknown)
841          return false;          return FALSE;
842      }      }
843    obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;    obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
844    return (*aout_backend_info (abfd)->set_sizes) (abfd);    return (*aout_backend_info (abfd)->set_sizes) (abfd);
# Line 895  tic30_aout_set_arch_mach (abfd, arch, ma Line 900  tic30_aout_set_arch_mach (abfd, arch, ma
900  #endif  #endif
901  #ifndef MY_bfd_debug_info_accumulate  #ifndef MY_bfd_debug_info_accumulate
902  #define MY_bfd_debug_info_accumulate    \  #define MY_bfd_debug_info_accumulate    \
903                          (void (*) PARAMS ((bfd*, struct sec *))) bfd_void                  (void (*) PARAMS ((bfd*, struct bfd_section *))) bfd_void
904  #endif  #endif
905    
906  #ifndef MY_core_file_failing_command  #ifndef MY_core_file_failing_command
# Line 922  tic30_aout_set_arch_mach (abfd, arch, ma Line 927  tic30_aout_set_arch_mach (abfd, arch, ma
927  #ifndef MY_get_symtab_upper_bound  #ifndef MY_get_symtab_upper_bound
928  #define MY_get_symtab_upper_bound NAME(aout,get_symtab_upper_bound)  #define MY_get_symtab_upper_bound NAME(aout,get_symtab_upper_bound)
929  #endif  #endif
930  #ifndef MY_get_symtab  #ifndef MY_canonicalize_symtab
931  #define MY_get_symtab NAME(aout,get_symtab)  #define MY_canonicalize_symtab NAME(aout,canonicalize_symtab)
932  #endif  #endif
933  #ifndef MY_get_reloc_upper_bound  #ifndef MY_get_reloc_upper_bound
934  #define MY_get_reloc_upper_bound NAME(aout,get_reloc_upper_bound)  #define MY_get_reloc_upper_bound NAME(aout,get_reloc_upper_bound)
# Line 965  tic30_aout_set_arch_mach (abfd, arch, ma Line 970  tic30_aout_set_arch_mach (abfd, arch, ma
970  #ifndef MY_bfd_merge_sections  #ifndef MY_bfd_merge_sections
971  #define MY_bfd_merge_sections bfd_generic_merge_sections  #define MY_bfd_merge_sections bfd_generic_merge_sections
972  #endif  #endif
973    #ifndef MY_bfd_is_group_section
974    #define MY_bfd_is_group_section bfd_generic_is_group_section
975    #endif
976  #ifndef MY_bfd_discard_group  #ifndef MY_bfd_discard_group
977  #define MY_bfd_discard_group bfd_generic_discard_group  #define MY_bfd_discard_group bfd_generic_discard_group
978  #endif  #endif
979    #ifndef MY_section_already_linked
980    #define MY_section_already_linked \
981      _bfd_generic_section_already_linked
982    #endif
983  #ifndef MY_bfd_reloc_type_lookup  #ifndef MY_bfd_reloc_type_lookup
984  #define MY_bfd_reloc_type_lookup tic30_aout_reloc_type_lookup  #define MY_bfd_reloc_type_lookup tic30_aout_reloc_type_lookup
985  #endif  #endif
# Line 1008  tic30_aout_set_arch_mach (abfd, arch, ma Line 1020  tic30_aout_set_arch_mach (abfd, arch, ma
1020  #define MY_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data  #define MY_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data
1021  #endif  #endif
1022    
1023    #ifndef MY_bfd_copy_private_header_data
1024    #define MY_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data
1025    #endif
1026    
1027  #ifndef MY_bfd_print_private_bfd_data  #ifndef MY_bfd_print_private_bfd_data
1028  #define MY_bfd_print_private_bfd_data _bfd_generic_bfd_print_private_bfd_data  #define MY_bfd_print_private_bfd_data _bfd_generic_bfd_print_private_bfd_data
1029  #endif  #endif
# Line 1020  tic30_aout_set_arch_mach (abfd, arch, ma Line 1036  tic30_aout_set_arch_mach (abfd, arch, ma
1036  #define MY_bfd_is_local_label_name bfd_generic_is_local_label_name  #define MY_bfd_is_local_label_name bfd_generic_is_local_label_name
1037  #endif  #endif
1038    
1039    #ifndef MY_bfd_is_target_special_symbol
1040    #define MY_bfd_is_target_special_symbol  \
1041      ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
1042    #endif
1043    
1044  #ifndef MY_bfd_free_cached_info  #ifndef MY_bfd_free_cached_info
1045  #define MY_bfd_free_cached_info NAME(aout,bfd_free_cached_info)  #define MY_bfd_free_cached_info NAME(aout,bfd_free_cached_info)
1046  #endif  #endif
# Line 1036  tic30_aout_set_arch_mach (abfd, arch, ma Line 1057  tic30_aout_set_arch_mach (abfd, arch, ma
1057  #define MY_canonicalize_dynamic_symtab \  #define MY_canonicalize_dynamic_symtab \
1058    _bfd_nodynamic_canonicalize_dynamic_symtab    _bfd_nodynamic_canonicalize_dynamic_symtab
1059  #endif  #endif
1060    #ifndef MY_get_synthetic_symtab
1061    #define MY_get_synthetic_symtab \
1062      _bfd_nodynamic_get_synthetic_symtab
1063    #endif
1064  #ifndef MY_get_dynamic_reloc_upper_bound  #ifndef MY_get_dynamic_reloc_upper_bound
1065  #define MY_get_dynamic_reloc_upper_bound \  #define MY_get_dynamic_reloc_upper_bound \
1066    _bfd_nodynamic_get_dynamic_reloc_upper_bound    _bfd_nodynamic_get_dynamic_reloc_upper_bound

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26