mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
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.
This commit is contained in:
@ -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>
|
2021-04-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR binutils/27708
|
PR binutils/27708
|
||||||
|
120
bfd/elf32-csky.c
120
bfd/elf32-csky.c
@ -324,33 +324,33 @@ static reloc_howto_type csky_elf_howto_table[] =
|
|||||||
|
|
||||||
/* 20: Only for csky v2. */
|
/* 20: Only for csky v2. */
|
||||||
HOWTO (R_CKCORE_PCREL_IMM16BY2, /* type */
|
HOWTO (R_CKCORE_PCREL_IMM16BY2, /* type */
|
||||||
1, /* rightshift */
|
1, /* rightshift */
|
||||||
2, /* size */
|
2, /* size */
|
||||||
16, /* bitsize */
|
16, /* bitsize */
|
||||||
true, /* pc_relative */
|
true, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_signed, /* complain_on_overflow */
|
complain_overflow_signed, /* complain_on_overflow */
|
||||||
NULL, /* special_function */
|
bfd_elf_generic_reloc, /* special_function */
|
||||||
"R_CKCORE_PCREL_IMM16BY2", /* name */
|
"R_CKCORE_PCREL_IMM16BY2", /* name */
|
||||||
false, /* partial_inplace */
|
false, /* partial_inplace */
|
||||||
0x0, /* src_mask */
|
0x0, /* src_mask */
|
||||||
0xffff, /* dst_mask */
|
0xffff, /* dst_mask */
|
||||||
true), /* pcrel_offset */
|
true), /* pcrel_offset */
|
||||||
|
|
||||||
/* 21: Only for csky v2. */
|
/* 21: Only for csky v2. */
|
||||||
HOWTO (R_CKCORE_PCREL_IMM16BY4, /* type */
|
HOWTO (R_CKCORE_PCREL_IMM16BY4, /* type */
|
||||||
2, /* rightshift */
|
2, /* rightshift */
|
||||||
2, /* size */
|
2, /* size */
|
||||||
16, /* bitsize */
|
16, /* bitsize */
|
||||||
true, /* pc_relative */
|
true, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_bitfield, /* complain_on_overflow */
|
complain_overflow_bitfield, /* complain_on_overflow */
|
||||||
NULL, /* special_function */
|
bfd_elf_generic_reloc, /* special_function */
|
||||||
"R_CKCORE_PCREL_IMM16BY4", /* name */
|
"R_CKCORE_PCREL_IMM16BY4", /* name */
|
||||||
false, /* partial_inplace */
|
false, /* partial_inplace */
|
||||||
0xffff0000, /* src_mask */
|
0xffff0000, /* src_mask */
|
||||||
0xffff, /* dst_mask */
|
0xffff, /* dst_mask */
|
||||||
true), /* pcrel_offset */
|
true), /* pcrel_offset */
|
||||||
|
|
||||||
/* 22: Only for csky v2. */
|
/* 22: Only for csky v2. */
|
||||||
HOWTO (R_CKCORE_PCREL_IMM10BY2, /* type */
|
HOWTO (R_CKCORE_PCREL_IMM10BY2, /* type */
|
||||||
@ -369,18 +369,18 @@ static reloc_howto_type csky_elf_howto_table[] =
|
|||||||
|
|
||||||
/* 23: Only for csky v2. */
|
/* 23: Only for csky v2. */
|
||||||
HOWTO (R_CKCORE_PCREL_IMM10BY4, /* type */
|
HOWTO (R_CKCORE_PCREL_IMM10BY4, /* type */
|
||||||
2, /* rightshift */
|
2, /* rightshift */
|
||||||
2, /* size */
|
2, /* size */
|
||||||
10, /* bitsize */
|
10, /* bitsize */
|
||||||
true, /* pc_relative */
|
true, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_bitfield, /* complain_on_overflow */
|
complain_overflow_bitfield, /* complain_on_overflow */
|
||||||
NULL, /* special_function */
|
bfd_elf_generic_reloc, /* special_function */
|
||||||
"R_CKCORE_PCREL_IMM10BY4", /* name */
|
"R_CKCORE_PCREL_IMM10BY4", /* name */
|
||||||
false, /* partial_inplace */
|
false, /* partial_inplace */
|
||||||
0x0, /* src_mask */
|
0x0, /* src_mask */
|
||||||
0x3ff, /* dst_mask */
|
0x3ff, /* dst_mask */
|
||||||
true), /* pcrel_offset */
|
true), /* pcrel_offset */
|
||||||
|
|
||||||
/* 24: Only for csky v2. */
|
/* 24: Only for csky v2. */
|
||||||
HOWTO (R_CKCORE_ADDR_HI16, /* type */
|
HOWTO (R_CKCORE_ADDR_HI16, /* type */
|
||||||
@ -621,18 +621,18 @@ static reloc_howto_type csky_elf_howto_table[] =
|
|||||||
|
|
||||||
/* 43. */
|
/* 43. */
|
||||||
HOWTO (R_CKCORE_PCREL_IMM18BY2, /* type */
|
HOWTO (R_CKCORE_PCREL_IMM18BY2, /* type */
|
||||||
1, /* rightshift */
|
1, /* rightshift */
|
||||||
2, /* size */
|
2, /* size */
|
||||||
18, /* bitsize */
|
18, /* bitsize */
|
||||||
true, /* pc_relative */
|
true, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_signed, /* complain_on_overflow */
|
complain_overflow_signed, /* complain_on_overflow */
|
||||||
NULL, /* special_function */
|
bfd_elf_generic_reloc, /* special_function */
|
||||||
"R_CKCORE_PCREL_IMM18BY2", /* name */
|
"R_CKCORE_PCREL_IMM18BY2", /* name */
|
||||||
false, /* partial_inplace */
|
false, /* partial_inplace */
|
||||||
0x0, /* src_mask */
|
0x0, /* src_mask */
|
||||||
0x3ffff, /* dst_mask */
|
0x3ffff, /* dst_mask */
|
||||||
true), /* pcrel_offset */
|
true), /* pcrel_offset */
|
||||||
|
|
||||||
/* 44. */
|
/* 44. */
|
||||||
HOWTO (R_CKCORE_DOFFSET_IMM18, /* type */
|
HOWTO (R_CKCORE_DOFFSET_IMM18, /* type */
|
||||||
@ -825,18 +825,18 @@ static reloc_howto_type csky_elf_howto_table[] =
|
|||||||
|
|
||||||
/* 59: for ck807f. */
|
/* 59: for ck807f. */
|
||||||
HOWTO (R_CKCORE_PCREL_FLRW_IMM8BY4, /* type */
|
HOWTO (R_CKCORE_PCREL_FLRW_IMM8BY4, /* type */
|
||||||
2, /* rightshift */
|
2, /* rightshift */
|
||||||
2, /* size */
|
2, /* size */
|
||||||
8, /* bitsize */
|
8, /* bitsize */
|
||||||
true, /* pc_relative */
|
true, /* pc_relative */
|
||||||
0, /* bitpos */
|
0, /* bitpos */
|
||||||
complain_overflow_bitfield, /* complain_on_overflow */
|
complain_overflow_bitfield, /* complain_on_overflow */
|
||||||
NULL, /* special_function */
|
bfd_elf_generic_reloc, /* special_function */
|
||||||
"R_CKCORE_PCREL_FLRW_IMM8BY4", /* name */
|
"R_CKCORE_PCREL_FLRW_IMM8BY4",/* name */
|
||||||
false, /* partial_inplace */
|
false, /* partial_inplace */
|
||||||
0xfe1fff0f, /* src_mask */
|
0xfe1fff0f, /* src_mask */
|
||||||
0x1e000f0, /* dst_mask */
|
0x1e000f0, /* dst_mask */
|
||||||
true), /* pcrel_offset */
|
true), /* pcrel_offset */
|
||||||
|
|
||||||
/* 60: for 810 not to generate jsri. */
|
/* 60: for 810 not to generate jsri. */
|
||||||
HOWTO (R_CKCORE_NOJSRI, /* type */
|
HOWTO (R_CKCORE_NOJSRI, /* type */
|
||||||
|
Reference in New Issue
Block a user