Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/bfd/elf32-avr.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* AVR-specific support for 32-bit ELF
    2    Copyright 1999, 2000 Free Software Foundation, Inc.
     2   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    33   Contributed by Denis Chertykov <denisc@overta.ru>
    44
     
    2828  PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
    2929static void avr_info_to_howto_rela
    30   PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
     30  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
    3131static asection *elf32_avr_gc_mark_hook
    32   PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Rela *,
     32  PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *,
    3333           struct elf_link_hash_entry *, Elf_Internal_Sym *));
    34 static boolean elf32_avr_gc_sweep_hook
     34static bfd_boolean elf32_avr_gc_sweep_hook
    3535  PARAMS ((bfd *, struct bfd_link_info *, asection *,
    3636           const Elf_Internal_Rela *));
    37 static boolean elf32_avr_check_relocs
     37static bfd_boolean elf32_avr_check_relocs
    3838  PARAMS ((bfd *, struct bfd_link_info *, asection *,
    3939           const Elf_Internal_Rela *));
     
    4141  PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
    4242           Elf_Internal_Rela *, bfd_vma));
    43 static boolean elf32_avr_relocate_section
     43static bfd_boolean elf32_avr_relocate_section
    4444  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
    4545           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
    46 static void bfd_elf_avr_final_write_processing PARAMS ((bfd *, boolean));
    47 static boolean elf32_avr_object_p PARAMS ((bfd *));
    48 
    49 /* Use RELA instead of REL */
    50 #undef USE_REL
     46static void bfd_elf_avr_final_write_processing PARAMS ((bfd *, bfd_boolean));
     47static bfd_boolean elf32_avr_object_p PARAMS ((bfd *));
    5148
    5249static reloc_howto_type elf_avr_howto_table[] =
     
    5653         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    5754         32,                    /* bitsize */
    58          false,                 /* pc_relative */
     55         FALSE,                 /* pc_relative */
    5956         0,                     /* bitpos */
    6057         complain_overflow_bitfield, /* complain_on_overflow */
    6158         bfd_elf_generic_reloc, /* special_function */
    6259         "R_AVR_NONE",          /* name */
    63          false,                 /* partial_inplace */
     60         FALSE,                 /* partial_inplace */
    6461         0,                     /* src_mask */
    6562         0,                     /* dst_mask */
    66          false),                /* pcrel_offset */
     63         FALSE),                /* pcrel_offset */
    6764
    6865  HOWTO (R_AVR_32,              /* type */
     
    7067         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    7168         32,                    /* bitsize */
    72          false,                 /* pc_relative */
     69         FALSE,                 /* pc_relative */
    7370         0,                     /* bitpos */
    7471         complain_overflow_bitfield, /* complain_on_overflow */
    7572         bfd_elf_generic_reloc, /* special_function */
    7673         "R_AVR_32",            /* name */
    77          false,                 /* partial_inplace */
     74         FALSE,                 /* partial_inplace */
    7875         0xffffffff,            /* src_mask */
    7976         0xffffffff,            /* dst_mask */
    80          false),                /* pcrel_offset */
     77         FALSE),                /* pcrel_offset */
    8178
    8279  /* A 7 bit PC relative relocation.  */
     
    8582         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    8683         7,                     /* bitsize */
    87          true,                  /* pc_relative */
     84         TRUE,                  /* pc_relative */
    8885         3,                     /* bitpos */
    8986         complain_overflow_bitfield, /* complain_on_overflow */
    9087         bfd_elf_generic_reloc, /* special_function */
    9188         "R_AVR_7_PCREL",       /* name */
    92          false,                 /* partial_inplace */
    93          0xffff,                /* src_mask */
    94          0xffff,                /* dst_mask */
    95          true),                 /* pcrel_offset */
     89         FALSE,                 /* partial_inplace */
     90         0xffff,                /* src_mask */
     91         0xffff,                /* dst_mask */
     92         TRUE),                 /* pcrel_offset */
    9693
    9794  /* A 13 bit PC relative relocation.  */
     
    10097         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    10198         13,                    /* bitsize */
    102          true,                  /* pc_relative */
     99         TRUE,                  /* pc_relative */
    103100         0,                     /* bitpos */
    104101         complain_overflow_bitfield, /* complain_on_overflow */
    105102         bfd_elf_generic_reloc, /* special_function */
    106103         "R_AVR_13_PCREL",      /* name */
    107          false,                 /* partial_inplace */
     104         FALSE,                 /* partial_inplace */
    108105         0xfff,                 /* src_mask */
    109106         0xfff,                 /* dst_mask */
    110          true),                 /* pcrel_offset */
     107         TRUE),                 /* pcrel_offset */
    111108
    112109  /* A 16 bit absolute relocation.  */
     
    115112         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    116113         16,                    /* bitsize */
    117          false,                 /* pc_relative */
     114         FALSE,                 /* pc_relative */
    118115         0,                     /* bitpos */
    119116         complain_overflow_dont, /* complain_on_overflow */
    120117         bfd_elf_generic_reloc, /* special_function */
    121118         "R_AVR_16",            /* name */
    122          false,                 /* partial_inplace */
    123          0xffff,                /* src_mask */
    124          0xffff,                /* dst_mask */
    125          false),                /* pcrel_offset */
     119         FALSE,                 /* partial_inplace */
     120         0xffff,                /* src_mask */
     121         0xffff,                /* dst_mask */
     122         FALSE),                /* pcrel_offset */
    126123
    127124  /* A 16 bit absolute relocation for command address.  */
     
    130127         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    131128         16,                    /* bitsize */
    132          false,                 /* pc_relative */
     129         FALSE,                 /* pc_relative */
    133130         0,                     /* bitpos */
    134131         complain_overflow_bitfield, /* complain_on_overflow */
    135132         bfd_elf_generic_reloc, /* special_function */
    136133         "R_AVR_16_PM",         /* name */
    137          false,                 /* partial_inplace */
    138          0xffff,                /* src_mask */
    139          0xffff,                /* dst_mask */
    140          false),                /* pcrel_offset */
     134         FALSE,                 /* partial_inplace */
     135         0xffff,                /* src_mask */
     136         0xffff,                /* dst_mask */
     137         FALSE),                /* pcrel_offset */
    141138  /* A low 8 bit absolute relocation of 16 bit address.
    142139     For LDI command.  */
     
    145142         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    146143         8,                     /* bitsize */
    147          false,                 /* pc_relative */
     144         FALSE,                 /* pc_relative */
    148145         0,                     /* bitpos */
    149146         complain_overflow_dont, /* complain_on_overflow */
    150147         bfd_elf_generic_reloc, /* special_function */
    151148         "R_AVR_LO8_LDI",       /* name */
    152          false,                 /* partial_inplace */
    153          0xffff,                /* src_mask */
    154          0xffff,                /* dst_mask */
    155          false),                /* pcrel_offset */
     149         FALSE,                 /* partial_inplace */
     150         0xffff,                /* src_mask */
     151         0xffff,                /* dst_mask */
     152         FALSE),                /* pcrel_offset */
    156153  /* A high 8 bit absolute relocation of 16 bit address.
    157154     For LDI command.  */
     
    160157         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    161158         8,                     /* bitsize */
    162          false,                 /* pc_relative */
     159         FALSE,                 /* pc_relative */
    163160         0,                     /* bitpos */
    164161         complain_overflow_dont, /* complain_on_overflow */
    165162         bfd_elf_generic_reloc, /* special_function */
    166163         "R_AVR_HI8_LDI",       /* name */
    167          false,                 /* partial_inplace */
    168          0xffff,                /* src_mask */
    169          0xffff,                /* dst_mask */
    170          false),                /* pcrel_offset */
     164         FALSE,                 /* partial_inplace */
     165         0xffff,                /* src_mask */
     166         0xffff,                /* dst_mask */
     167         FALSE),                /* pcrel_offset */
    171168  /* A high 6 bit absolute relocation of 22 bit address.
    172169     For LDI command.  */
     
    175172         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    176173         8,                     /* bitsize */
    177          false,                 /* pc_relative */
     174         FALSE,                 /* pc_relative */
    178175         0,                     /* bitpos */
    179176         complain_overflow_dont, /* complain_on_overflow */
    180177         bfd_elf_generic_reloc, /* special_function */
    181178         "R_AVR_HH8_LDI",       /* name */
    182          false,                 /* partial_inplace */
    183          0xffff,                /* src_mask */
    184          0xffff,                /* dst_mask */
    185          false),                /* pcrel_offset */
     179         FALSE,                 /* partial_inplace */
     180         0xffff,                /* src_mask */
     181         0xffff,                /* dst_mask */
     182         FALSE),                /* pcrel_offset */
    186183  /* A negative low 8 bit absolute relocation of 16 bit address.
    187184     For LDI command.  */
     
    190187         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    191188         8,                     /* bitsize */
    192          false,                 /* pc_relative */
     189         FALSE,                 /* pc_relative */
    193190         0,                     /* bitpos */
    194191         complain_overflow_dont, /* complain_on_overflow */
    195192         bfd_elf_generic_reloc, /* special_function */
    196193         "R_AVR_LO8_LDI_NEG",   /* name */
    197          false,                 /* partial_inplace */
    198          0xffff,                /* src_mask */
    199          0xffff,                /* dst_mask */
    200          false),                /* pcrel_offset */
     194         FALSE,                 /* partial_inplace */
     195         0xffff,                /* src_mask */
     196         0xffff,                /* dst_mask */
     197         FALSE),                /* pcrel_offset */
    201198  /* A hegative high 8 bit absolute relocation of 16 bit address.
    202199     For LDI command.  */
     
    205202         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    206203         8,                     /* bitsize */
    207          false,                 /* pc_relative */
     204         FALSE,                 /* pc_relative */
    208205         0,                     /* bitpos */
    209206         complain_overflow_dont, /* complain_on_overflow */
    210207         bfd_elf_generic_reloc, /* special_function */
    211208         "R_AVR_HI8_LDI_NEG",   /* name */
    212          false,                 /* partial_inplace */
    213          0xffff,                /* src_mask */
    214          0xffff,                /* dst_mask */
    215          false),                /* pcrel_offset */
     209         FALSE,                 /* partial_inplace */
     210         0xffff,                /* src_mask */
     211         0xffff,                /* dst_mask */
     212         FALSE),                /* pcrel_offset */
    216213  /* A hegative high 6 bit absolute relocation of 22 bit address.
    217214     For LDI command.  */
     
    220217         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    221218         8,                     /* bitsize */
    222          false,                 /* pc_relative */
     219         FALSE,                 /* pc_relative */
    223220         0,                     /* bitpos */
    224221         complain_overflow_dont, /* complain_on_overflow */
    225222         bfd_elf_generic_reloc, /* special_function */
    226223         "R_AVR_HH8_LDI_NEG",   /* name */
    227          false,                 /* partial_inplace */
    228          0xffff,                /* src_mask */
    229          0xffff,                /* dst_mask */
    230          false),                /* pcrel_offset */
     224         FALSE,                 /* partial_inplace */
     225         0xffff,                /* src_mask */
     226         0xffff,                /* dst_mask */
     227         FALSE),                /* pcrel_offset */
    231228  /* A low 8 bit absolute relocation of 24 bit program memory address.
    232229     For LDI command.  */
     
    235232         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    236233         8,                     /* bitsize */
    237          false,                 /* pc_relative */
     234         FALSE,                 /* pc_relative */
    238235         0,                     /* bitpos */
    239236         complain_overflow_dont, /* complain_on_overflow */
    240237         bfd_elf_generic_reloc, /* special_function */
    241238         "R_AVR_LO8_LDI_PM",    /* name */
    242          false,                 /* partial_inplace */
    243          0xffff,                /* src_mask */
    244          0xffff,                /* dst_mask */
    245          false),                /* pcrel_offset */
     239         FALSE,                 /* partial_inplace */
     240         0xffff,                /* src_mask */
     241         0xffff,                /* dst_mask */
     242         FALSE),                /* pcrel_offset */
    246243  /* A high 8 bit absolute relocation of 16 bit program memory address.
    247244     For LDI command.  */
     
    250247         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    251248         8,                     /* bitsize */
    252          false,                 /* pc_relative */
     249         FALSE,                 /* pc_relative */
    253250         0,                     /* bitpos */
    254251         complain_overflow_dont, /* complain_on_overflow */
    255252         bfd_elf_generic_reloc, /* special_function */
    256253         "R_AVR_HI8_LDI_PM",    /* name */
    257          false,                 /* partial_inplace */
    258          0xffff,                /* src_mask */
    259          0xffff,                /* dst_mask */
    260          false),                /* pcrel_offset */
     254         FALSE,                 /* partial_inplace */
     255         0xffff,                /* src_mask */
     256         0xffff,                /* dst_mask */
     257         FALSE),                /* pcrel_offset */
    261258  /* A high 8 bit absolute relocation of 24 bit program memory address.
    262259     For LDI command.  */
     
    265262         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    266263         8,                     /* bitsize */
    267          false,                 /* pc_relative */
     264         FALSE,                 /* pc_relative */
    268265         0,                     /* bitpos */
    269266         complain_overflow_dont, /* complain_on_overflow */
    270267         bfd_elf_generic_reloc, /* special_function */
    271268         "R_AVR_HH8_LDI_PM",    /* name */
    272          false,                 /* partial_inplace */
    273          0xffff,                /* src_mask */
    274          0xffff,                /* dst_mask */
    275          false),                /* pcrel_offset */
     269         FALSE,                 /* partial_inplace */
     270         0xffff,                /* src_mask */
     271         0xffff,                /* dst_mask */
     272         FALSE),                /* pcrel_offset */
    276273  /* A low 8 bit absolute relocation of a negative 24 bit
    277274     program memory address.  For LDI command.  */
     
    280277         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    281278         8,                     /* bitsize */
    282          false,                 /* pc_relative */
     279         FALSE,                 /* pc_relative */
    283280         0,                     /* bitpos */
    284281         complain_overflow_dont, /* complain_on_overflow */
    285282         bfd_elf_generic_reloc, /* special_function */
    286283         "R_AVR_LO8_LDI_PM_NEG", /* name */
    287          false,                 /* partial_inplace */
    288          0xffff,                /* src_mask */
    289          0xffff,                /* dst_mask */
    290          false),                /* pcrel_offset */
     284         FALSE,                 /* partial_inplace */
     285         0xffff,                /* src_mask */
     286         0xffff,                /* dst_mask */
     287         FALSE),                /* pcrel_offset */
    291288  /* A high 8 bit absolute relocation of a negative 16 bit
    292289     program memory address.  For LDI command.  */
     
    295292         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    296293         8,                     /* bitsize */
    297          false,                 /* pc_relative */
     294         FALSE,                 /* pc_relative */
    298295         0,                     /* bitpos */
    299296         complain_overflow_dont, /* complain_on_overflow */
    300297         bfd_elf_generic_reloc, /* special_function */
    301298         "R_AVR_HI8_LDI_PM_NEG", /* name */
    302          false,                 /* partial_inplace */
    303          0xffff,                /* src_mask */
    304          0xffff,                /* dst_mask */
    305          false),                /* pcrel_offset */
     299         FALSE,                 /* partial_inplace */
     300         0xffff,                /* src_mask */
     301         0xffff,                /* dst_mask */
     302         FALSE),                /* pcrel_offset */
    306303  /* A high 8 bit absolute relocation of a negative 24 bit
    307304     program memory address.  For LDI command.  */
     
    310307         1,                     /* size (0 = byte, 1 = short, 2 = long) */
    311308         8,                     /* bitsize */
    312          false,                 /* pc_relative */
     309         FALSE,                 /* pc_relative */
    313310         0,                     /* bitpos */
    314311         complain_overflow_dont, /* complain_on_overflow */
    315312         bfd_elf_generic_reloc, /* special_function */
    316313         "R_AVR_HH8_LDI_PM_NEG", /* name */
    317          false,                 /* partial_inplace */
    318          0xffff,                /* src_mask */
    319          0xffff,                /* dst_mask */
    320          false),                /* pcrel_offset */
     314         FALSE,                 /* partial_inplace */
     315         0xffff,                /* src_mask */
     316         0xffff,                /* dst_mask */
     317         FALSE),                /* pcrel_offset */
    321318  /* Relocation for CALL command in ATmega.  */
    322319  HOWTO (R_AVR_CALL,            /* type */
     
    324321         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    325322         23,                    /* bitsize */
    326          false,                 /* pc_relative */
     323         FALSE,                 /* pc_relative */
    327324         0,                     /* bitpos */
    328325         complain_overflow_dont, /* complain_on_overflow */
    329326         bfd_elf_generic_reloc, /* special_function */
    330327         "R_AVR_CALL",          /* name */
    331          false,                 /* partial_inplace */
     328         FALSE,                 /* partial_inplace */
    332329         0xffffffff,            /* src_mask */
    333330         0xffffffff,            /* dst_mask */
    334          false)                 /* pcrel_offset */
     331         FALSE)                 /* pcrel_offset */
    335332};
    336333
     
    390387     bfd *abfd ATTRIBUTE_UNUSED;
    391388     arelent *cache_ptr;
    392      Elf32_Internal_Rela *dst;
     389     Elf_Internal_Rela *dst;
    393390{
    394391  unsigned int r_type;
     
    400397
    401398static asection *
    402 elf32_avr_gc_mark_hook (abfd, info, rel, h, sym)
    403      bfd *abfd;
     399elf32_avr_gc_mark_hook (sec, info, rel, h, sym)
     400     asection *sec;
    404401     struct bfd_link_info *info ATTRIBUTE_UNUSED;
    405402     Elf_Internal_Rela *rel;
     
    427424    }
    428425  else
    429     {
    430       if (!(elf_bad_symtab (abfd)
    431             && ELF_ST_BIND (sym->st_info) != STB_LOCAL)
    432           && !((sym->st_shndx <= 0 || sym->st_shndx >= SHN_LORESERVE)
    433                && sym->st_shndx != SHN_COMMON))
    434         {
    435           return bfd_section_from_elf_index (abfd, sym->st_shndx);
    436         }
    437     }
     426    return bfd_section_from_elf_index (sec->owner, sym->st_shndx);
     427
    438428  return NULL;
    439429}
    440430
    441 static boolean
     431static bfd_boolean
    442432elf32_avr_gc_sweep_hook (abfd, info, sec, relocs)
    443433     bfd *abfd ATTRIBUTE_UNUSED;
     
    447437{
    448438  /* We don't use got and plt entries for avr.  */
    449   return true;
     439  return TRUE;
    450440}
    451441
     
    454444   virtual table relocs for gc.  */
    455445
    456 static boolean
     446static bfd_boolean
    457447elf32_avr_check_relocs (abfd, info, sec, relocs)
    458448     bfd *abfd;
     
    467457
    468458  if (info->relocateable)
    469     return true;
     459    return TRUE;
    470460
    471461  symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
     
    488478    }
    489479
    490   return true;
     480  return TRUE;
    491481}
    492482
     
    700690      x |= ((srel & 0x10000) | ((srel << 3) & 0x1f00000)) >> 16;
    701691      bfd_put_16 (input_bfd, x, contents);
    702       bfd_put_16 (input_bfd, srel & 0xffff, contents+2);
     692      bfd_put_16 (input_bfd, (bfd_vma) srel & 0xffff, contents+2);
    703693      break;
    704694
     
    713703
    714704/* Relocate an AVR ELF section.  */
    715 static boolean
     705static bfd_boolean
    716706elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section,
    717707                            contents, relocs, local_syms, local_sections)
     
    729719  Elf_Internal_Rela *           rel;
    730720  Elf_Internal_Rela *           relend;
     721
     722  if (info->relocateable)
     723    return TRUE;
    731724
    732725  symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
     
    746739      int                          r_type;
    747740
     741      /* This is a final link.  */
    748742      r_type = ELF32_R_TYPE (rel->r_info);
    749743      r_symndx = ELF32_R_SYM (rel->r_info);
    750 
    751       if (info->relocateable)
    752         {
    753           /* This is a relocateable link.  We don't have to change
    754              anything, unless the reloc is against a section symbol,
    755              in which case we have to adjust according to where the
    756              section symbol winds up in the output section.  */
    757           if (r_symndx < symtab_hdr->sh_info)
    758             {
    759               sym = local_syms + r_symndx;
    760 
    761               if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
    762                 {
    763                   sec = local_sections [r_symndx];
    764                   rel->r_addend += sec->output_offset + sym->st_value;
    765                 }
    766             }
    767 
    768           continue;
    769         }
    770 
    771       /* This is a final link.  */
    772744      howto  = elf_avr_howto_table + ELF32_R_TYPE (rel->r_info);
    773745      h      = NULL;
     
    779751          sym = local_syms + r_symndx;
    780752          sec = local_sections [r_symndx];
    781           relocation = (sec->output_section->vma
    782                         + sec->output_offset
    783                         + sym->st_value);
     753          relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
    784754
    785755          name = bfd_elf_string_from_elf_section
     
    813783              if (! ((*info->callbacks->undefined_symbol)
    814784                     (info, h->root.root.string, input_bfd,
    815                       input_section, rel->r_offset, true)))
    816                 return false;
     785                      input_section, rel->r_offset, TRUE)))
     786                return FALSE;
    817787              relocation = 0;
    818788            }
     
    836806            case bfd_reloc_undefined:
    837807              r = info->callbacks->undefined_symbol
    838                 (info, name, input_bfd, input_section, rel->r_offset, true);
     808                (info, name, input_bfd, input_section, rel->r_offset, TRUE);
    839809              break;
    840810
     
    861831
    862832          if (! r)
    863             return false;
     833            return FALSE;
    864834        }
    865835    }
    866836
    867   return true;
     837  return TRUE;
    868838}
    869839
     
    875845bfd_elf_avr_final_write_processing (abfd, linker)
    876846     bfd *abfd;
    877      boolean linker ATTRIBUTE_UNUSED;
     847     bfd_boolean linker ATTRIBUTE_UNUSED;
    878848{
    879849  unsigned long val;
     
    910880/* Set the right machine number.  */
    911881
    912 static boolean
     882static bfd_boolean
    913883elf32_avr_object_p (abfd)
    914884     bfd *abfd;
    915885{
    916   int e_set = bfd_mach_avr2;
    917   if (elf_elfheader (abfd)->e_machine == EM_AVR)
     886  unsigned int e_set = bfd_mach_avr2;
     887  if (elf_elfheader (abfd)->e_machine == EM_AVR
     888      || elf_elfheader (abfd)->e_machine == EM_AVR_OLD)
    918889    {
    919890      int e_mach = elf_elfheader (abfd)->e_flags & EF_AVR_MACH;
     
    948919#define ELF_ARCH                bfd_arch_avr
    949920#define ELF_MACHINE_CODE        EM_AVR
     921#define ELF_MACHINE_ALT1        EM_AVR_OLD
    950922#define ELF_MAXPAGESIZE         1
    951923
     
    960932#define elf_backend_check_relocs             elf32_avr_check_relocs
    961933#define elf_backend_can_gc_sections          1
     934#define elf_backend_rela_normal              1
    962935#define elf_backend_final_write_processing \
    963936                                        bfd_elf_avr_final_write_processing
Note: See TracChangeset for help on using the changeset viewer.