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-i860.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* Intel i860 specific support for 32-bit ELF.
    2    Copyright 1993, 1995, 1999, 2000, 2001 Free Software Foundation, Inc.
     2   Copyright 1993, 1995, 1999, 2000, 2001, 2002
     3   Free Software Foundation, Inc.
    34
    45   Full i860 support contributed by Jason Eckhardt <jle@cygnus.com>.
     
    3435
    3536static void elf32_i860_info_to_howto_rela
    36   PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
     37  PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
    3738
    3839static bfd_reloc_status_type elf32_i860_relocate_splitn
     
    4849  PARAMS ((bfd *,  Elf_Internal_Rela *, bfd_byte *, bfd_vma));
    4950
    50 static boolean elf32_i860_relocate_section
     51static bfd_boolean elf32_i860_relocate_section
    5152  PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
    5253           Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
     
    5657           Elf_Internal_Rela *, bfd_vma));
    5758
    58 static boolean elf32_i860_is_local_label_name
     59static bfd_boolean elf32_i860_is_local_label_name
    5960  PARAMS ((bfd *, const char *));
    6061
     
    6768         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    6869         32,                    /* bitsize */
    69          false,                 /* pc_relative */
     70         FALSE,                 /* pc_relative */
    7071         0,                     /* bitpos */
    7172         complain_overflow_bitfield, /* complain_on_overflow */
    7273         bfd_elf_generic_reloc, /* special_function */
    7374         "R_860_NONE",          /* name */
    74          false,                 /* partial_inplace */
     75         FALSE,                 /* partial_inplace */
    7576         0,                     /* src_mask */
    7677         0,                     /* dst_mask */
    77          false),                /* pcrel_offset */
     78         FALSE),                /* pcrel_offset */
    7879
    7980  /* A 32-bit absolute relocation.  */
     
    8283         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    8384         32,                    /* bitsize */
    84          false,                 /* pc_relative */
     85         FALSE,                 /* pc_relative */
    8586         0,                     /* bitpos */
    8687         complain_overflow_bitfield, /* complain_on_overflow */
    8788         bfd_elf_generic_reloc, /* special_function */
    8889         "R_860_32",            /* name */
    89          false,                 /* partial_inplace */
    90          0xffffffff,            /* src_mask */
    91          0xffffffff,            /* dst_mask */
    92          false),                /* pcrel_offset */
     90         FALSE,                 /* partial_inplace */
     91         0xffffffff,            /* src_mask */
     92         0xffffffff,            /* dst_mask */
     93         FALSE),                /* pcrel_offset */
    9394
    9495  HOWTO (R_860_COPY,            /* type */
     
    9697         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    9798         32,                    /* bitsize */
    98          false,                 /* pc_relative */
     99         FALSE,                 /* pc_relative */
    99100         0,                     /* bitpos */
    100101         complain_overflow_bitfield, /* complain_on_overflow */
    101102         bfd_elf_generic_reloc, /* special_function */
    102103         "R_860_COPY",          /* name */
    103          true,                  /* partial_inplace */
    104          0xffffffff,            /* src_mask */
    105          0xffffffff,            /* dst_mask */
    106          false),                /* pcrel_offset */
     104         TRUE,                  /* partial_inplace */
     105         0xffffffff,            /* src_mask */
     106         0xffffffff,            /* dst_mask */
     107         FALSE),                /* pcrel_offset */
    107108
    108109  HOWTO (R_860_GLOB_DAT,        /* type */
     
    110111         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    111112         32,                    /* bitsize */
    112          false,                 /* pc_relative */
     113         FALSE,                 /* pc_relative */
    113114         0,                     /* bitpos */
    114115         complain_overflow_bitfield, /* complain_on_overflow */
    115116         bfd_elf_generic_reloc, /* special_function */
    116117         "R_860_GLOB_DAT",      /* name */
    117          true,                  /* partial_inplace */
    118          0xffffffff,            /* src_mask */
    119          0xffffffff,            /* dst_mask */
    120          false),                /* pcrel_offset */
     118         TRUE,                  /* partial_inplace */
     119         0xffffffff,            /* src_mask */
     120         0xffffffff,            /* dst_mask */
     121         FALSE),                /* pcrel_offset */
    121122
    122123  HOWTO (R_860_JUMP_SLOT,       /* type */
     
    124125         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    125126         32,                    /* bitsize */
    126          false,                 /* pc_relative */
     127         FALSE,                 /* pc_relative */
    127128         0,                     /* bitpos */
    128129         complain_overflow_bitfield, /* complain_on_overflow */
    129130         bfd_elf_generic_reloc, /* special_function */
    130131         "R_860_JUMP_SLOT",     /* name */
    131          true,                  /* partial_inplace */
    132          0xffffffff,            /* src_mask */
    133          0xffffffff,            /* dst_mask */
    134          false),                /* pcrel_offset */
     132         TRUE,                  /* partial_inplace */
     133         0xffffffff,            /* src_mask */
     134         0xffffffff,            /* dst_mask */
     135         FALSE),                /* pcrel_offset */
    135136
    136137  HOWTO (R_860_RELATIVE,        /* type */
     
    138139         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    139140         32,                    /* bitsize */
    140          false,                 /* pc_relative */
     141         FALSE,                 /* pc_relative */
    141142         0,                     /* bitpos */
    142143         complain_overflow_bitfield, /* complain_on_overflow */
    143144         bfd_elf_generic_reloc, /* special_function */
    144145         "R_860_RELATIVE",      /* name */
    145          true,                  /* partial_inplace */
    146          0xffffffff,            /* src_mask */
    147          0xffffffff,            /* dst_mask */
    148          false),                /* pcrel_offset */
     146         TRUE,                  /* partial_inplace */
     147         0xffffffff,            /* src_mask */
     148         0xffffffff,            /* dst_mask */
     149         FALSE),                /* pcrel_offset */
    149150
    150151  /* A 26-bit PC-relative relocation.  */
     
    153154         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    154155         26,                    /* bitsize */
    155          true,                  /* pc_relative */
     156         TRUE,                  /* pc_relative */
    156157         0,                     /* bitpos */
    157158         complain_overflow_bitfield, /* complain_on_overflow */
    158159         bfd_elf_generic_reloc, /* special_function */
    159160         "R_860_PC26",          /* name */
    160          false,                 /* partial_inplace */
     161         FALSE,                 /* partial_inplace */
    161162         0x3ffffff,             /* src_mask */
    162163         0x3ffffff,             /* dst_mask */
    163          true),                 /* pcrel_offset */
     164         TRUE),                 /* pcrel_offset */
    164165
    165166  HOWTO (R_860_PLT26,           /* type */
     
    167168         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    168169         26,                    /* bitsize */
    169          true,                  /* pc_relative */
     170         TRUE,                  /* pc_relative */
    170171         0,                     /* bitpos */
    171172         complain_overflow_bitfield, /* complain_on_overflow */
    172173         bfd_elf_generic_reloc, /* special_function */
    173174         "R_860_PLT26",         /* name */
    174          true,                  /* partial_inplace */
    175          0xffffffff,            /* src_mask */
    176          0xffffffff,            /* dst_mask */
    177          true),                 /* pcrel_offset */
     175         TRUE,                  /* partial_inplace */
     176         0xffffffff,            /* src_mask */
     177         0xffffffff,            /* dst_mask */
     178         TRUE),                 /* pcrel_offset */
    178179
    179180  /* A 16-bit PC-relative relocation.  */
     
    182183         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    183184         16,                    /* bitsize */
    184          true,                  /* pc_relative */
     185         TRUE,                  /* pc_relative */
    185186         0,                     /* bitpos */
    186187         complain_overflow_bitfield, /* complain_on_overflow */
    187188         bfd_elf_generic_reloc, /* special_function */
    188189         "R_860_PC16",          /* name */
    189          false,                 /* partial_inplace */
     190         FALSE,                 /* partial_inplace */
    190191         0x1f07ff,              /* src_mask */
    191192         0x1f07ff,              /* dst_mask */
    192          true),                 /* pcrel_offset */
     193         TRUE),                 /* pcrel_offset */
    193194
    194195  HOWTO (R_860_LOW0,            /* type */
     
    196197         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    197198         16,                    /* bitsize */
    198          false,                 /* pc_relative */
     199         FALSE,                 /* pc_relative */
    199200         0,                     /* bitpos */
    200201         complain_overflow_dont, /* complain_on_overflow */
    201202         bfd_elf_generic_reloc, /* special_function */
    202203         "R_860_LOW0",          /* name */
    203          false,                 /* partial_inplace */
     204         FALSE,                 /* partial_inplace */
    204205         0xffff,                /* src_mask */
    205206         0xffff,                /* dst_mask */
    206          false),                /* pcrel_offset */
     207         FALSE),                /* pcrel_offset */
    207208
    208209  HOWTO (R_860_SPLIT0,          /* type */
     
    210211         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    211212         16,                    /* bitsize */
    212          false,                 /* pc_relative */
     213         FALSE,                 /* pc_relative */
    213214         0,                     /* bitpos */
    214215         complain_overflow_dont, /* complain_on_overflow */
    215216         bfd_elf_generic_reloc, /* special_function */
    216217         "R_860_SPLIT0",        /* name */
    217          false,                 /* partial_inplace */
     218         FALSE,                 /* partial_inplace */
    218219         0x1f07ff,              /* src_mask */
    219220         0x1f07ff,              /* dst_mask */
    220          false),                /* pcrel_offset */
     221         FALSE),                /* pcrel_offset */
    221222
    222223  HOWTO (R_860_LOW1,            /* type */
     
    224225         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    225226         16,                    /* bitsize */
    226          false,                 /* pc_relative */
     227         FALSE,                 /* pc_relative */
    227228         0,                     /* bitpos */
    228229         complain_overflow_dont, /* complain_on_overflow */
    229230         bfd_elf_generic_reloc, /* special_function */
    230231         "R_860_LOW1",          /* name */
    231          false,                 /* partial_inplace */
     232         FALSE,                 /* partial_inplace */
    232233         0xfffe,                /* src_mask */
    233234         0xfffe,                /* dst_mask */
    234          false),                /* pcrel_offset */
     235         FALSE),                /* pcrel_offset */
    235236
    236237  HOWTO (R_860_SPLIT1,          /* type */
     
    238239         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    239240         16,                    /* bitsize */
    240          false,                 /* pc_relative */
     241         FALSE,                 /* pc_relative */
    241242         0,                     /* bitpos */
    242243         complain_overflow_dont, /* complain_on_overflow */
    243244         bfd_elf_generic_reloc, /* special_function */
    244245         "R_860_SPLIT1",        /* name */
    245          false,                 /* partial_inplace */
     246         FALSE,                 /* partial_inplace */
    246247         0x1f07fe,              /* src_mask */
    247248         0x1f07fe,              /* dst_mask */
    248          false),                /* pcrel_offset */
     249         FALSE),                /* pcrel_offset */
    249250
    250251  HOWTO (R_860_LOW2,            /* type */
     
    252253         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    253254         16,                    /* bitsize */
    254          false,                 /* pc_relative */
     255         FALSE,                 /* pc_relative */
    255256         0,                     /* bitpos */
    256257         complain_overflow_dont, /* complain_on_overflow */
    257258         bfd_elf_generic_reloc, /* special_function */
    258259         "R_860_LOW2",          /* name */
    259          false,                 /* partial_inplace */
     260         FALSE,                 /* partial_inplace */
    260261         0xfffc,                /* src_mask */
    261262         0xfffc,                /* dst_mask */
    262          false),                /* pcrel_offset */
     263         FALSE),                /* pcrel_offset */
    263264
    264265  HOWTO (R_860_SPLIT2,          /* type */
     
    266267         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    267268         16,                    /* bitsize */
    268          false,                 /* pc_relative */
     269         FALSE,                 /* pc_relative */
    269270         0,                     /* bitpos */
    270271         complain_overflow_dont, /* complain_on_overflow */
    271272         bfd_elf_generic_reloc, /* special_function */
    272273         "R_860_SPLIT2",        /* name */
    273          false,                 /* partial_inplace */
     274         FALSE,                 /* partial_inplace */
    274275         0x1f07fc,              /* src_mask */
    275276         0x1f07fc,              /* dst_mask */
    276          false),                /* pcrel_offset */
     277         FALSE),                /* pcrel_offset */
    277278
    278279  HOWTO (R_860_LOW3,            /* type */
     
    280281         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    281282         16,                    /* bitsize */
    282          false,                 /* pc_relative */
     283         FALSE,                 /* pc_relative */
    283284         0,                     /* bitpos */
    284285         complain_overflow_dont, /* complain_on_overflow */
    285286         bfd_elf_generic_reloc, /* special_function */
    286287         "R_860_LOW3",          /* name */
    287          false,                 /* partial_inplace */
     288         FALSE,                 /* partial_inplace */
    288289         0xfff8,                /* src_mask */
    289290         0xfff8,                /* dst_mask */
    290          false),                /* pcrel_offset */
     291         FALSE),                /* pcrel_offset */
    291292
    292293  HOWTO (R_860_LOGOT0,          /* type */
     
    294295         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    295296         16,                    /* bitsize */
    296          false,                 /* pc_relative */
     297         FALSE,                 /* pc_relative */
    297298         0,                     /* bitpos */
    298299         complain_overflow_dont, /* complain_on_overflow */
    299300         bfd_elf_generic_reloc, /* special_function */
    300301         "R_860_LOGOT0",        /* name */
    301          false,                 /* partial_inplace */
     302         FALSE,                 /* partial_inplace */
    302303         0,                     /* src_mask */
    303304         0xffff,                /* dst_mask */
    304          true),                 /* pcrel_offset */
     305         TRUE),                 /* pcrel_offset */
    305306
    306307  HOWTO (R_860_SPGOT0,          /* type */
     
    308309         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    309310         16,                    /* bitsize */
    310          false,                 /* pc_relative */
     311         FALSE,                 /* pc_relative */
    311312         0,                     /* bitpos */
    312313         complain_overflow_dont, /* complain_on_overflow */
    313314         bfd_elf_generic_reloc, /* special_function */
    314315         "R_860_SPGOT0",        /* name */
    315          false,                 /* partial_inplace */
     316         FALSE,                 /* partial_inplace */
    316317         0,                     /* src_mask */
    317318         0xffff,                /* dst_mask */
    318          true),                 /* pcrel_offset */
     319         TRUE),                 /* pcrel_offset */
    319320
    320321  HOWTO (R_860_LOGOT1,          /* type */
     
    322323         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    323324         16,                    /* bitsize */
    324          false,                 /* pc_relative */
     325         FALSE,                 /* pc_relative */
    325326         0,                     /* bitpos */
    326327         complain_overflow_dont, /* complain_on_overflow */
    327328         bfd_elf_generic_reloc, /* special_function */
    328329         "R_860_LOGOT1",        /* name */
    329          false,                 /* partial_inplace */
     330         FALSE,                 /* partial_inplace */
    330331         0,                     /* src_mask */
    331332         0xffff,                /* dst_mask */
    332          true),                 /* pcrel_offset */
     333         TRUE),                 /* pcrel_offset */
    333334
    334335  HOWTO (R_860_SPGOT1,          /* type */
     
    336337         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    337338         16,                    /* bitsize */
    338          false,                 /* pc_relative */
     339         FALSE,                 /* pc_relative */
    339340         0,                     /* bitpos */
    340341         complain_overflow_dont, /* complain_on_overflow */
    341342         bfd_elf_generic_reloc, /* special_function */
    342343         "R_860_SPGOT1",        /* name */
    343          false,                 /* partial_inplace */
     344         FALSE,                 /* partial_inplace */
    344345         0,                     /* src_mask */
    345346         0xffff,                /* dst_mask */
    346          true),                 /* pcrel_offset */
     347         TRUE),                 /* pcrel_offset */
    347348
    348349  HOWTO (R_860_LOGOTOFF0,        /* type */
     
    350351         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    351352         32,                    /* bitsize */
    352          false,                 /* pc_relative */
     353         FALSE,                 /* pc_relative */
    353354         0,                     /* bitpos */
    354355         complain_overflow_dont, /* complain_on_overflow */
    355356         bfd_elf_generic_reloc, /* special_function */
    356357         "R_860_LOGOTOFF0",     /* name */
    357          true,                  /* partial_inplace */
    358          0xffffffff,            /* src_mask */
    359          0xffffffff,            /* dst_mask */
    360          false),                /* pcrel_offset */
     358         TRUE,                  /* partial_inplace */
     359         0xffffffff,            /* src_mask */
     360         0xffffffff,            /* dst_mask */
     361         FALSE),                /* pcrel_offset */
    361362
    362363  HOWTO (R_860_SPGOTOFF0,        /* type */
     
    364365         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    365366         32,                    /* bitsize */
    366          false,                 /* pc_relative */
     367         FALSE,                 /* pc_relative */
    367368         0,                     /* bitpos */
    368369         complain_overflow_dont, /* complain_on_overflow */
    369370         bfd_elf_generic_reloc, /* special_function */
    370371         "R_860_SPGOTOFF0",     /* name */
    371          true,                  /* partial_inplace */
    372          0xffffffff,            /* src_mask */
    373          0xffffffff,            /* dst_mask */
    374          false),                /* pcrel_offset */
     372         TRUE,                  /* partial_inplace */
     373         0xffffffff,            /* src_mask */
     374         0xffffffff,            /* dst_mask */
     375         FALSE),                /* pcrel_offset */
    375376
    376377  HOWTO (R_860_LOGOTOFF1,        /* type */
     
    378379         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    379380         32,                    /* bitsize */
    380          false,                 /* pc_relative */
     381         FALSE,                 /* pc_relative */
    381382         0,                     /* bitpos */
    382383         complain_overflow_dont, /* complain_on_overflow */
    383384         bfd_elf_generic_reloc, /* special_function */
    384385         "R_860_LOGOTOFF1",     /* name */
    385          true,                  /* partial_inplace */
    386          0xffffffff,            /* src_mask */
    387          0xffffffff,            /* dst_mask */
    388          false),                /* pcrel_offset */
     386         TRUE,                  /* partial_inplace */
     387         0xffffffff,            /* src_mask */
     388         0xffffffff,            /* dst_mask */
     389         FALSE),                /* pcrel_offset */
    389390
    390391  HOWTO (R_860_SPGOTOFF1,       /* type */
     
    392393         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    393394         32,                    /* bitsize */
    394          false,                 /* pc_relative */
     395         FALSE,                 /* pc_relative */
    395396         0,                     /* bitpos */
    396397         complain_overflow_dont, /* complain_on_overflow */
    397398         bfd_elf_generic_reloc, /* special_function */
    398399         "R_860_SPGOTOFF1",     /* name */
    399          true,                  /* partial_inplace */
    400          0xffffffff,            /* src_mask */
    401          0xffffffff,            /* dst_mask */
    402          false),                /* pcrel_offset */
     400         TRUE,                  /* partial_inplace */
     401         0xffffffff,            /* src_mask */
     402         0xffffffff,            /* dst_mask */
     403         FALSE),                /* pcrel_offset */
    403404
    404405  HOWTO (R_860_LOGOTOFF2,        /* type */
     
    406407         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    407408         32,                    /* bitsize */
    408          false,                 /* pc_relative */
     409         FALSE,                 /* pc_relative */
    409410         0,                     /* bitpos */
    410411         complain_overflow_dont, /* complain_on_overflow */
    411412         bfd_elf_generic_reloc, /* special_function */
    412413         "R_860_LOGOTOFF2",     /* name */
    413          true,                  /* partial_inplace */
    414          0xffffffff,            /* src_mask */
    415          0xffffffff,            /* dst_mask */
    416          false),                /* pcrel_offset */
     414         TRUE,                  /* partial_inplace */
     415         0xffffffff,            /* src_mask */
     416         0xffffffff,            /* dst_mask */
     417         FALSE),                /* pcrel_offset */
    417418
    418419  HOWTO (R_860_LOGOTOFF3,        /* type */
     
    420421         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    421422         32,                    /* bitsize */
    422          false,                 /* pc_relative */
     423         FALSE,                 /* pc_relative */
    423424         0,                     /* bitpos */
    424425         complain_overflow_dont, /* complain_on_overflow */
    425426         bfd_elf_generic_reloc, /* special_function */
    426427         "R_860_LOGOTOFF3",     /* name */
    427          true,                  /* partial_inplace */
    428          0xffffffff,            /* src_mask */
    429          0xffffffff,            /* dst_mask */
    430          false),                /* pcrel_offset */
     428         TRUE,                  /* partial_inplace */
     429         0xffffffff,            /* src_mask */
     430         0xffffffff,            /* dst_mask */
     431         FALSE),                /* pcrel_offset */
    431432
    432433  HOWTO (R_860_LOPC,            /* type */
     
    434435         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    435436         16,                    /* bitsize */
    436          true,                  /* pc_relative */
     437         TRUE,                  /* pc_relative */
    437438         0,                     /* bitpos */
    438439         complain_overflow_bitfield, /* complain_on_overflow */
    439440         bfd_elf_generic_reloc, /* special_function */
    440441         "R_860_LOPC",          /* name */
    441          false,                 /* partial_inplace */
     442         FALSE,                 /* partial_inplace */
    442443         0xffff,                /* src_mask */
    443444         0xffff,                /* dst_mask */
    444          true),                 /* pcrel_offset */
     445         TRUE),                 /* pcrel_offset */
    445446
    446447  HOWTO (R_860_HIGHADJ,         /* type */
     
    448449         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    449450         16,                    /* bitsize */
    450          false,                 /* pc_relative */
     451         FALSE,                 /* pc_relative */
    451452         0,                     /* bitpos */
    452453         complain_overflow_dont, /* complain_on_overflow */
    453454         bfd_elf_generic_reloc, /* special_function */
    454455         "R_860_HIGHADJ",       /* name */
    455          false,                 /* partial_inplace */
     456         FALSE,                 /* partial_inplace */
    456457         0xffff,                /* src_mask */
    457458         0xffff,                /* dst_mask */
    458          false),                /* pcrel_offset */
     459         FALSE),                /* pcrel_offset */
    459460
    460461  HOWTO (R_860_HAGOT,           /* type */
     
    462463         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    463464         16,                    /* bitsize */
    464          false,                 /* pc_relative */
     465         FALSE,                 /* pc_relative */
    465466         0,                     /* bitpos */
    466467         complain_overflow_dont, /* complain_on_overflow */
    467468         bfd_elf_generic_reloc, /* special_function */
    468469         "R_860_HAGOT",         /* name */
    469          false,                 /* partial_inplace */
     470         FALSE,                 /* partial_inplace */
    470471         0,                     /* src_mask */
    471472         0xffff,                /* dst_mask */
    472          true),                 /* pcrel_offset */
     473         TRUE),                 /* pcrel_offset */
    473474
    474475  HOWTO (R_860_HAGOTOFF,        /* type */
     
    476477         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    477478         32,                    /* bitsize */
    478          false,                 /* pc_relative */
     479         FALSE,                 /* pc_relative */
    479480         0,                     /* bitpos */
    480481         complain_overflow_dont, /* complain_on_overflow */
    481482         bfd_elf_generic_reloc, /* special_function */
    482483         "R_860_HAGOTOFF",      /* name */
    483          true,                  /* partial_inplace */
    484          0xffffffff,            /* src_mask */
    485          0xffffffff,            /* dst_mask */
    486          false),                /* pcrel_offset */
     484         TRUE,                  /* partial_inplace */
     485         0xffffffff,            /* src_mask */
     486         0xffffffff,            /* dst_mask */
     487         FALSE),                /* pcrel_offset */
    487488
    488489  HOWTO (R_860_HAPC,            /* type */
     
    490491         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    491492         16,                    /* bitsize */
    492          true,                  /* pc_relative */
     493         TRUE,                  /* pc_relative */
    493494         0,                     /* bitpos */
    494495         complain_overflow_bitfield, /* complain_on_overflow */
    495496         bfd_elf_generic_reloc, /* special_function */
    496497         "R_860_HAPC",          /* name */
    497          false,                 /* partial_inplace */
     498         FALSE,                 /* partial_inplace */
    498499         0xffff,                /* src_mask */
    499500         0xffff,                /* dst_mask */
    500          true),                 /* pcrel_offset */
     501         TRUE),                 /* pcrel_offset */
    501502
    502503  HOWTO (R_860_HIGH,            /* type */
     
    504505         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    505506         16,                    /* bitsize */
    506          false,                 /* pc_relative */
     507         FALSE,                 /* pc_relative */
    507508         0,                     /* bitpos */
    508509         complain_overflow_dont, /* complain_on_overflow */
    509510         bfd_elf_generic_reloc, /* special_function */
    510511         "R_860_HIGH",          /* name */
    511          false,                 /* partial_inplace */
     512         FALSE,                 /* partial_inplace */
    512513         0xffff,                /* src_mask */
    513514         0xffff,                /* dst_mask */
    514          false),                /* pcrel_offset */
     515         FALSE),                /* pcrel_offset */
    515516
    516517  HOWTO (R_860_HIGOT,           /* type */
     
    518519         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    519520         16,                    /* bitsize */
    520          false,                 /* pc_relative */
     521         FALSE,                 /* pc_relative */
    521522         0,                     /* bitpos */
    522523         complain_overflow_dont, /* complain_on_overflow */
    523524         bfd_elf_generic_reloc, /* special_function */
    524525         "R_860_HIGOT",         /* name */
    525          false,                 /* partial_inplace */
     526         FALSE,                 /* partial_inplace */
    526527         0,                     /* src_mask */
    527528         0xffff,                /* dst_mask */
    528          true),                 /* pcrel_offset */
     529         TRUE),                 /* pcrel_offset */
    529530
    530531  HOWTO (R_860_HIGOTOFF,        /* type */
     
    532533         2,                     /* size (0 = byte, 1 = short, 2 = long) */
    533534         32,                    /* bitsize */
    534          false,                 /* pc_relative */
     535         FALSE,                 /* pc_relative */
    535536         0,                     /* bitpos */
    536537         complain_overflow_dont, /* complain_on_overflow */
    537538         bfd_elf_generic_reloc, /* special_function */
    538539         "R_860_HIGOTOFF",      /* name */
    539          true,                  /* partial_inplace */
    540          0xffffffff,            /* src_mask */
    541          0xffffffff,            /* dst_mask */
    542          false),                /* pcrel_offset */
     540         TRUE,                  /* partial_inplace */
     541         0xffffffff,            /* src_mask */
     542         0xffffffff,            /* dst_mask */
     543         FALSE),                /* pcrel_offset */
    543544};
    544545
     
    695696     bfd *abfd ATTRIBUTE_UNUSED;
    696697     arelent *bfd_reloc;
    697      Elf64_Internal_Rela *elf_reloc;
     698     Elf_Internal_Rela *elf_reloc;
    698699{
    699   bfd_reloc->howto = lookup_howto (ELF32_R_TYPE (elf_reloc->r_info));
     700  bfd_reloc->howto
     701    = lookup_howto ((unsigned) ELF32_R_TYPE (elf_reloc->r_info));
    700702}
    701703
     
    712714  bfd_vma insn;
    713715  reloc_howto_type *howto;
    714   howto  = lookup_howto (ELF32_R_TYPE (rello->r_info));
     716  howto = lookup_howto ((unsigned) ELF32_R_TYPE (rello->r_info));
    715717  insn = bfd_get_32 (input_bfd, contents + rello->r_offset);
    716718
     
    739741  bfd_vma insn;
    740742  reloc_howto_type *howto;
    741   howto  = lookup_howto (ELF32_R_TYPE (rello->r_info));
     743  howto = lookup_howto ((unsigned) ELF32_R_TYPE (rello->r_info));
    742744  insn = bfd_get_32 (input_bfd, contents + rello->r_offset);
    743745
     
    771773  bfd_vma insn;
    772774  reloc_howto_type *howto;
    773   howto  = lookup_howto (ELF32_R_TYPE (rello->r_info));
     775  howto = lookup_howto ((unsigned) ELF32_R_TYPE (rello->r_info));
    774776  insn = bfd_get_32 (input_bfd, contents + rello->r_offset);
    775777
     
    832834
    833835   This is boiler-plate code copied from fr30.
    834    There is some attempt to make this function usable for many architectures,
    835    both USE_REL and USE_RELA ['twould be nice if such a critter existed],
    836    if only to serve as a learning tool.
    837836
    838837   The RELOCATE_SECTION function is called by the new ELF backend linker
     
    863862   section, which means that the addend must be adjusted
    864863   accordingly.  */
    865 static boolean
     864static bfd_boolean
    866865elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section,
    867866                             contents, relocs, local_syms, local_sections)
    868      bfd *                   output_bfd ATTRIBUTE_UNUSED;
    869      struct bfd_link_info *  info;
    870      bfd *                   input_bfd;
    871      asection *              input_section;
    872      bfd_byte *              contents;
    873      Elf_Internal_Rela *     relocs;
    874      Elf_Internal_Sym *      local_syms;
    875      asection **             local_sections;
     867     bfd *output_bfd ATTRIBUTE_UNUSED;
     868     struct bfd_link_info *info;
     869     bfd *input_bfd;
     870     asection *input_section;
     871     bfd_byte *contents;
     872     Elf_Internal_Rela *relocs;
     873     Elf_Internal_Sym *local_syms;
     874     asection **local_sections;
    876875{
    877   Elf_Internal_Shdr *           symtab_hdr;
    878   struct elf_link_hash_entry ** sym_hashes;
    879   Elf_Internal_Rela *           rel;
    880   Elf_Internal_Rela *           relend;
     876  Elf_Internal_Shdr *symtab_hdr;
     877  struct elf_link_hash_entry **sym_hashes;
     878  Elf_Internal_Rela *rel;
     879  Elf_Internal_Rela *relend;
     880
     881  if (info->relocateable)
     882    return TRUE;
    881883
    882884  symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;
     
    906908      r_symndx = ELF32_R_SYM (rel->r_info);
    907909
    908       if (info->relocateable)
    909         {
    910           /* This is a relocateable link.  We don't have to change
    911              anything, unless the reloc is against a section symbol,
    912              in which case we have to adjust according to where the
    913              section symbol winds up in the output section.  */
    914           if (r_symndx < symtab_hdr->sh_info)
    915             {
    916               sym = local_syms + r_symndx;
    917 
    918               if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
    919                 {
    920                   sec = local_sections [r_symndx];
    921                   rel->r_addend += sec->output_offset + sym->st_value;
    922                 }
    923             }
    924 
    925           continue;
    926         }
    927 
    928       /* This is a final link.  */
    929       howto  = lookup_howto (ELF32_R_TYPE (rel->r_info));
    930       h      = NULL;
    931       sym    = NULL;
    932       sec    = NULL;
     910      howto = lookup_howto ((unsigned) ELF32_R_TYPE (rel->r_info));
     911      h     = NULL;
     912      sym   = NULL;
     913      sec   = NULL;
    933914
    934915      if (r_symndx < symtab_hdr->sh_info)
     
    936917          sym = local_syms + r_symndx;
    937918          sec = local_sections [r_symndx];
    938           relocation = (sec->output_section->vma
    939                         + sec->output_offset
    940                         + sym->st_value);
     919          relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
    941920
    942921          name = bfd_elf_string_from_elf_section
     
    970949              if (! ((*info->callbacks->undefined_symbol)
    971950                     (info, h->root.root.string, input_bfd,
    972                       input_section, rel->r_offset, true)))
    973                 return false;
     951                      input_section, rel->r_offset, TRUE)))
     952                return FALSE;
    974953              relocation = 0;
    975954            }
     
    10451024            case bfd_reloc_undefined:
    10461025              r = info->callbacks->undefined_symbol
    1047                 (info, name, input_bfd, input_section, rel->r_offset, true);
     1026                (info, name, input_bfd, input_section, rel->r_offset, TRUE);
    10481027              break;
    10491028
     
    10701049
    10711050          if (! r)
    1072             return false;
     1051            return FALSE;
    10731052        }
    10741053    }
    10751054
    1076   return true;
     1055  return TRUE;
    10771056}
    10781057
     
    10821061   ??? Do any other SVR4 compilers have this convention? If so, this should
    10831062   be added to the generic routine.  */
    1084 static boolean
     1063static bfd_boolean
    10851064elf32_i860_is_local_label_name (abfd, name)
    10861065     bfd *abfd;
     
    10881067{
    10891068  if (name[0] == '.' && name[1] == 'e' && name[2] == 'p' && name[3] == '.')
    1090     return true;
     1069    return TRUE;
    10911070
    10921071  return _bfd_elf_is_local_label_name (abfd, name);
     
    11021081#define ELF_MAXPAGESIZE         4096
    11031082
     1083#define elf_backend_rela_normal                 1
    11041084#define elf_info_to_howto_rel                   NULL
    11051085#define elf_info_to_howto                       elf32_i860_info_to_howto_rela
Note: See TracChangeset for help on using the changeset viewer.