From f6a1f9574955cd2678c66e658d770adda9331995 Mon Sep 17 00:00:00 2001 From: Lifang Xia Date: Wed, 14 Apr 2021 17:18:13 +0800 Subject: [PATCH] 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) : Set special_function to bfd_elf_generic_reloc. : Likewise. : Likewise. : Likewise. : Likewise. --- bfd/ChangeLog | 10 ++++ bfd/elf32-csky.c | 120 +++++++++++++++++++++++------------------------ 2 files changed, 70 insertions(+), 60 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6c89655664f..4884aaba384 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,13 @@ +2021-04-15 Lifang Xia + + * elf32-csky.c (csky_elf_howto_table) + : Set special_function to + bfd_elf_generic_reloc. + : Likewise. + : Likewise. + : Likewise. + : Likewise. + 2021-04-14 H.J. Lu PR binutils/27708 diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c index f8209a4a7da..3ab4639cbae 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 */ -- 2.30.2