diff options
author | Lifang Xia <lifang_xia@c-sky.com> | 2021-04-14 17:18:13 +0800 |
---|---|---|
committer | Lifang Xia <lifang_xia@c-sky.com> | 2021-04-15 10:07:35 +0800 |
commit | f6a1f9574955cd2678c66e658d770adda9331995 (patch) | |
tree | bc3e697800b300e221a0d198413b96da03a358d7 /bfd | |
parent | d4015fc5aa122b0de3f23c3b586e967dd2f2e225 (diff) | |
download | fsf-binutils-gdb-f6a1f9574955cd2678c66e658d770adda9331995.zip fsf-binutils-gdb-f6a1f9574955cd2678c66e658d770adda9331995.tar.gz fsf-binutils-gdb-f6a1f9574955cd2678c66e658d770adda9331995.tar.bz2 |
CSKY: Fix special_function in howto table
The special_function for reloc should be 'bfd_elf_generic_reloc',
reloc list:
R_CKCORE_PCREL_IMM16BY2,
R_CKCORE_PCREL_IMM16BY4,
R_CKCORE_PCREL_IMM10BY4,
R_CKCORE_PCREL_IMM18BY2,
R_CKCORE_PCREL_FLRW_IMM8BY4
bfd/
* elf32-csky.c (csky_elf_howto_table)
<R_CKCORE_PCREL_IMM16BY2>: Set special_function to
bfd_elf_generic_reloc.
<R_CKCORE_PCREL_IMM16BY4>: Likewise.
<R_CKCORE_PCREL_IMM10BY4>: Likewise.
<R_CKCORE_PCREL_IMM18BY2>: Likewise.
<R_CKCORE_PCREL_FLRW_IMM8BY4>: Likewise.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 10 | ||||
-rw-r--r-- | bfd/elf32-csky.c | 120 |
2 files changed, 70 insertions, 60 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6c89655..4884aab 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,13 @@ +2021-04-15 Lifang Xia<lifang_xia@c-sky.com> + + * elf32-csky.c (csky_elf_howto_table) + <R_CKCORE_PCREL_IMM16BY2>: Set special_function to + bfd_elf_generic_reloc. + <R_CKCORE_PCREL_IMM16BY4>: Likewise. + <R_CKCORE_PCREL_IMM10BY4>: Likewise. + <R_CKCORE_PCREL_IMM18BY2>: Likewise. + <R_CKCORE_PCREL_FLRW_IMM8BY4>: Likewise. + 2021-04-14 H.J. Lu <hongjiu.lu@intel.com> PR binutils/27708 diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c index f8209a4..3ab4639 100644 --- a/bfd/elf32-csky.c +++ b/bfd/elf32-csky.c @@ -324,33 +324,33 @@ static reloc_howto_type csky_elf_howto_table[] = /* 20: Only for csky v2. */ HOWTO (R_CKCORE_PCREL_IMM16BY2, /* type */ - 1, /* rightshift */ - 2, /* size */ - 16, /* bitsize */ - true, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - NULL, /* special_function */ - "R_CKCORE_PCREL_IMM16BY2", /* name */ - false, /* partial_inplace */ - 0x0, /* src_mask */ - 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + 1, /* rightshift */ + 2, /* size */ + 16, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_CKCORE_PCREL_IMM16BY2", /* name */ + false, /* partial_inplace */ + 0x0, /* src_mask */ + 0xffff, /* dst_mask */ + true), /* pcrel_offset */ /* 21: Only for csky v2. */ HOWTO (R_CKCORE_PCREL_IMM16BY4, /* type */ - 2, /* rightshift */ - 2, /* size */ - 16, /* bitsize */ - true, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - NULL, /* special_function */ - "R_CKCORE_PCREL_IMM16BY4", /* name */ - false, /* partial_inplace */ - 0xffff0000, /* src_mask */ - 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + 2, /* rightshift */ + 2, /* size */ + 16, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_CKCORE_PCREL_IMM16BY4", /* name */ + false, /* partial_inplace */ + 0xffff0000, /* src_mask */ + 0xffff, /* dst_mask */ + true), /* pcrel_offset */ /* 22: Only for csky v2. */ HOWTO (R_CKCORE_PCREL_IMM10BY2, /* type */ @@ -369,18 +369,18 @@ static reloc_howto_type csky_elf_howto_table[] = /* 23: Only for csky v2. */ HOWTO (R_CKCORE_PCREL_IMM10BY4, /* type */ - 2, /* rightshift */ - 2, /* size */ - 10, /* bitsize */ - true, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - NULL, /* special_function */ - "R_CKCORE_PCREL_IMM10BY4", /* name */ - false, /* partial_inplace */ - 0x0, /* src_mask */ - 0x3ff, /* dst_mask */ - true), /* pcrel_offset */ + 2, /* rightshift */ + 2, /* size */ + 10, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_CKCORE_PCREL_IMM10BY4", /* name */ + false, /* partial_inplace */ + 0x0, /* src_mask */ + 0x3ff, /* dst_mask */ + true), /* pcrel_offset */ /* 24: Only for csky v2. */ HOWTO (R_CKCORE_ADDR_HI16, /* type */ @@ -621,18 +621,18 @@ static reloc_howto_type csky_elf_howto_table[] = /* 43. */ HOWTO (R_CKCORE_PCREL_IMM18BY2, /* type */ - 1, /* rightshift */ - 2, /* size */ - 18, /* bitsize */ - true, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_signed, /* complain_on_overflow */ - NULL, /* special_function */ - "R_CKCORE_PCREL_IMM18BY2", /* name */ - false, /* partial_inplace */ - 0x0, /* src_mask */ - 0x3ffff, /* dst_mask */ - true), /* pcrel_offset */ + 1, /* rightshift */ + 2, /* size */ + 18, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_CKCORE_PCREL_IMM18BY2", /* name */ + false, /* partial_inplace */ + 0x0, /* src_mask */ + 0x3ffff, /* dst_mask */ + true), /* pcrel_offset */ /* 44. */ HOWTO (R_CKCORE_DOFFSET_IMM18, /* type */ @@ -825,18 +825,18 @@ static reloc_howto_type csky_elf_howto_table[] = /* 59: for ck807f. */ HOWTO (R_CKCORE_PCREL_FLRW_IMM8BY4, /* type */ - 2, /* rightshift */ - 2, /* size */ - 8, /* bitsize */ - true, /* pc_relative */ - 0, /* bitpos */ - complain_overflow_bitfield, /* complain_on_overflow */ - NULL, /* special_function */ - "R_CKCORE_PCREL_FLRW_IMM8BY4", /* name */ - false, /* partial_inplace */ - 0xfe1fff0f, /* src_mask */ - 0x1e000f0, /* dst_mask */ - true), /* pcrel_offset */ + 2, /* rightshift */ + 2, /* size */ + 8, /* bitsize */ + true, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_CKCORE_PCREL_FLRW_IMM8BY4",/* name */ + false, /* partial_inplace */ + 0xfe1fff0f, /* src_mask */ + 0x1e000f0, /* dst_mask */ + true), /* pcrel_offset */ /* 60: for 810 not to generate jsri. */ HOWTO (R_CKCORE_NOJSRI, /* type */ |