X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Felf32-rx.c;h=49556d2831ec79c709cebde23a9cf7370a62e4f6;hb=c88960d081f0b37ec03c66a13115e2a68e40d1ad;hp=0fe853da93277cfcccdaabe1115a18178e347211;hpb=7859afc4fa05f6876c4e6b95cfb8fc252efd96bc;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c index 0fe853da93..49556d2831 100644 --- a/bfd/elf32-rx.c +++ b/bfd/elf32-rx.c @@ -1,5 +1,5 @@ /* Renesas RX specific support for 32-bit ELF. - Copyright (C) 2008-2015 Free Software Foundation, Inc. + Copyright (C) 2008-2016 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -317,7 +317,6 @@ rx_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED, static bfd_vma get_symbol_value (const char * name, - bfd_reloc_status_type * status, struct bfd_link_info * info, bfd * input_bfd, asection * input_section, @@ -331,7 +330,7 @@ get_symbol_value (const char * name, if (h == NULL || (h->type != bfd_link_hash_defined && h->type != bfd_link_hash_defweak)) - * status = info->callbacks->undefined_symbol + (*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, offset, TRUE); else value = (h->u.def.value @@ -340,6 +339,7 @@ get_symbol_value (const char * name, return value; } + static bfd_vma get_symbol_value_maybe (const char * name, struct bfd_link_info * info) @@ -362,8 +362,7 @@ get_symbol_value_maybe (const char * name, } static bfd_vma -get_gp (bfd_reloc_status_type * status, - struct bfd_link_info * info, +get_gp (struct bfd_link_info * info, bfd * abfd, asection * sec, int offset) @@ -373,15 +372,14 @@ get_gp (bfd_reloc_status_type * status, if (!cached) { - cached_value = get_symbol_value ("__gp", status, info, abfd, sec, offset); + cached_value = get_symbol_value ("__gp", info, abfd, sec, offset); cached = TRUE; } return cached_value; } static bfd_vma -get_romstart (bfd_reloc_status_type * status, - struct bfd_link_info * info, +get_romstart (struct bfd_link_info * info, bfd * abfd, asection * sec, int offset) @@ -391,15 +389,14 @@ get_romstart (bfd_reloc_status_type * status, if (!cached) { - cached_value = get_symbol_value ("_start", status, info, abfd, sec, offset); + cached_value = get_symbol_value ("_start", info, abfd, sec, offset); cached = TRUE; } return cached_value; } static bfd_vma -get_ramstart (bfd_reloc_status_type * status, - struct bfd_link_info * info, +get_ramstart (struct bfd_link_info * info, bfd * abfd, asection * sec, int offset) @@ -409,7 +406,7 @@ get_ramstart (bfd_reloc_status_type * status, if (!cached) { - cached_value = get_symbol_value ("__datastart", status, info, abfd, sec, offset); + cached_value = get_symbol_value ("__datastart", info, abfd, sec, offset); cached = TRUE; } return cached_value; @@ -553,7 +550,6 @@ rx_elf_relocate_section bfd_vma entry_vma; int idx; char *buf; - bfd_reloc_status_type tstat = 0; if (table_default_cache != name) { @@ -571,18 +567,14 @@ rx_elf_relocate_section buf = (char *) malloc (13 + strlen (name + 20)); sprintf (buf, "$tablestart$%s", name + 20); - tstat = 0; table_start_cache = get_symbol_value (buf, - &tstat, info, input_bfd, input_section, rel->r_offset); sprintf (buf, "$tableend$%s", name + 20); - tstat = 0; table_end_cache = get_symbol_value (buf, - &tstat, info, input_bfd, input_section, @@ -956,7 +948,7 @@ rx_elf_relocate_section case R_RX_RH_GPRELB: WARN_REDHAT ("RX_RH_GPRELB"); - relocation -= get_gp (&r, info, input_bfd, input_section, rel->r_offset); + relocation -= get_gp (info, input_bfd, input_section, rel->r_offset); RANGE (0, 65535); #if RX_OPCODE_BIG_ENDIAN OP (1) = relocation; @@ -969,7 +961,7 @@ rx_elf_relocate_section case R_RX_RH_GPRELW: WARN_REDHAT ("RX_RH_GPRELW"); - relocation -= get_gp (&r, info, input_bfd, input_section, rel->r_offset); + relocation -= get_gp (info, input_bfd, input_section, rel->r_offset); ALIGN (1); relocation >>= 1; RANGE (0, 65535); @@ -984,7 +976,7 @@ rx_elf_relocate_section case R_RX_RH_GPRELL: WARN_REDHAT ("RX_RH_GPRELL"); - relocation -= get_gp (&r, info, input_bfd, input_section, rel->r_offset); + relocation -= get_gp (info, input_bfd, input_section, rel->r_offset); ALIGN (3); relocation >>= 2; RANGE (0, 65535); @@ -1407,11 +1399,11 @@ rx_elf_relocate_section break; case R_RX_OPromtop: - RX_STACK_PUSH (get_romstart (&r, info, input_bfd, input_section, rel->r_offset)); + RX_STACK_PUSH (get_romstart (info, input_bfd, input_section, rel->r_offset)); break; case R_RX_OPramtop: - RX_STACK_PUSH (get_ramstart (&r, info, input_bfd, input_section, rel->r_offset)); + RX_STACK_PUSH (get_ramstart (info, input_bfd, input_section, rel->r_offset)); break; default: @@ -1431,15 +1423,14 @@ rx_elf_relocate_section if (r_type == R_RX_DIR24S_PCREL) msg = _("%B(%A): error: call to undefined function '%s'"); else - r = info->callbacks->reloc_overflow + (*info->callbacks->reloc_overflow) (info, (h ? &h->root : NULL), name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset); break; case bfd_reloc_undefined: - r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, - TRUE); + (*info->callbacks->undefined_symbol) + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; case bfd_reloc_other: @@ -1465,9 +1456,6 @@ rx_elf_relocate_section if (msg) _bfd_error_handler (msg, input_bfd, input_section, name); - - if (! r) - return FALSE; } } @@ -1902,11 +1890,11 @@ rx_offset_for_reloc (bfd * abfd, break; case R_RX_OPromtop: - RX_STACK_PUSH (get_romstart (&r, info, input_bfd, input_section, rel->r_offset)); + RX_STACK_PUSH (get_romstart (info, input_bfd, input_section, rel->r_offset)); break; case R_RX_OPramtop: - RX_STACK_PUSH (get_ramstart (&r, info, input_bfd, input_section, rel->r_offset)); + RX_STACK_PUSH (get_ramstart (info, input_bfd, input_section, rel->r_offset)); break; case R_RX_DIR16UL: @@ -1941,6 +1929,8 @@ rx_offset_for_reloc (bfd * abfd, rel ++; } + /* FIXME. */ + (void) r; } static void @@ -3548,7 +3538,7 @@ rx_set_section_contents (bfd * abfd, if (! rv) return rv; - location ++; + location = (bfd_byte *) location + 1; offset ++; count --; caddr ++; @@ -3574,7 +3564,7 @@ rx_set_section_contents (bfd * abfd, } count -= scount; - location += scount; + location = (bfd_byte *) location + scount; offset += scount; if (count > 0) @@ -3593,7 +3583,7 @@ rx_set_section_contents (bfd * abfd, if (! rv) return rv; - location ++; + location = (bfd_byte *) location + 1; offset ++; count --; caddr ++;