X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felf32-xc16x.c;h=5b9c1fdbcfac7c74c0667ec76fcf1ac31a0782c3;hb=1ee1a363454d88a87ad2ade7530b2a7fb670021e;hp=66fe33dcb5138b91993d86461235f17bf3151e0a;hpb=f3185997ac0951edac802e29df03dfc0844fda34;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-xc16x.c b/bfd/elf32-xc16x.c index 66fe33dcb5..5b9c1fdbcf 100644 --- a/bfd/elf32-xc16x.c +++ b/bfd/elf32-xc16x.c @@ -1,5 +1,5 @@ /* Infineon XC16X-specific support for 16-bit ELF. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. Contributed by KPIT Cummins Infosystems This file is part of BFD, the Binary File Descriptor library. @@ -220,6 +220,15 @@ xc16x_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, return NULL; } +static reloc_howto_type * +elf32_xc16x_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, unsigned r_type) +{ + if (r_type < ARRAY_SIZE (xc16x_elf_howto_table)) + return & xc16x_elf_howto_table[r_type]; + + return NULL; +} + /* For a particular operand this function is called to finalise the type of relocation. */ @@ -388,7 +397,7 @@ elf32_xc16x_relocate_section (bfd *output_bfd, or sections discarded by a linker script, we just want the section contents cleared. Avoid any special processing. */ reloc_howto_type *howto; - howto = xc16x_reloc_type_lookup (input_bfd, r_type); + howto = elf32_xc16x_rtype_to_howto (input_bfd, r_type); RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section, rel, 1, relend, howto, 0, contents); } @@ -407,9 +416,8 @@ elf32_xc16x_relocate_section (bfd *output_bfd, } -static void -elf32_xc16x_final_write_processing (bfd *abfd, - bfd_boolean linker ATTRIBUTE_UNUSED) +static bfd_boolean +elf32_xc16x_final_write_processing (bfd *abfd) { unsigned long val; @@ -430,6 +438,7 @@ elf32_xc16x_final_write_processing (bfd *abfd, } elf_elfheader (abfd)->e_flags |= val; + return _bfd_elf_final_write_processing (abfd); } static unsigned long