projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add multi-target tests
[deliverable/binutils-gdb.git]
/
bfd
/
elf32-frv.c
diff --git
a/bfd/elf32-frv.c
b/bfd/elf32-frv.c
index 91815dff275cbe345709a002ff212611840a0b9c..4934ba6f1066905efb6d3cb8d356f9274a6a083b 100644
(file)
--- a/
bfd/elf32-frv.c
+++ b/
bfd/elf32-frv.c
@@
-1,5
+1,5
@@
/* FRV-specific support for 32-bit ELF.
/* FRV-specific support for 32-bit ELF.
- Copyright (C) 2002-20
18
Free Software Foundation, Inc.
+ Copyright (C) 2002-20
20
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
This file is part of BFD, the Binary File Descriptor library.
@@
-25,6
+25,7
@@
#include "elf/frv.h"
#include "dwarf2.h"
#include "hashtab.h"
#include "elf/frv.h"
#include "dwarf2.h"
#include "hashtab.h"
+#include "libiberty.h"
/* Forward declarations. */
/* Forward declarations. */
@@
-2532,7
+2533,7
@@
frv_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name)
/* Set the howto pointer for an FRV ELF reloc. */
/* Set the howto pointer for an FRV ELF reloc. */
-static
void
+static
bfd_boolean
frv_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
arelent *cache_ptr,
Elf_Internal_Rela *dst)
frv_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
arelent *cache_ptr,
Elf_Internal_Rela *dst)
@@
-2551,20
+2552,23
@@
frv_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
break;
default:
break;
default:
- if (r_type >=
(unsigned int) R_FRV_max
)
+ if (r_type >=
ARRAY_SIZE (elf32_frv_howto_table)
)
{
/* xgettext:c-format */
_bfd_error_handler (_("%pB: unsupported relocation type %#x"),
abfd, r_type);
{
/* xgettext:c-format */
_bfd_error_handler (_("%pB: unsupported relocation type %#x"),
abfd, r_type);
- r_type = 0;
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
}
cache_ptr->howto = & elf32_frv_howto_table [r_type];
break;
}
}
cache_ptr->howto = & elf32_frv_howto_table [r_type];
break;
}
+ return TRUE;
}
/* Set the howto pointer for an FRV ELF REL reloc. */
}
/* Set the howto pointer for an FRV ELF REL reloc. */
-static void
+
+static bfd_boolean
frvfdpic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
arelent *cache_ptr, Elf_Internal_Rela *dst)
{
frvfdpic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
arelent *cache_ptr, Elf_Internal_Rela *dst)
{
@@
-2595,8
+2599,9
@@
frvfdpic_info_to_howto_rel (bfd *abfd ATTRIBUTE_UNUSED,
default:
cache_ptr->howto = NULL;
default:
cache_ptr->howto = NULL;
-
break
;
+
return FALSE
;
}
}
+ return TRUE;
}
\f
/* Perform a single relocation. By default we use the standard BFD
}
\f
/* Perform a single relocation. By default we use the standard BFD
@@
-2731,7
+2736,7
@@
elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
if (name == NULL || name[0] == 0)
name = bfd_elf_string_from_elf_section
(input_bfd, symtab_hdr->sh_link, sym->st_name);
if (name == NULL || name[0] == 0)
- name = bfd_section_name (
input_bfd,
sec);
+ name = bfd_section_name (sec);
}
else
{
}
else
{
@@
-3561,8
+3566,7
@@
elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
&& (!h || FRVFDPIC_FUNCDESC_LOCAL (info, h)))
{
addend += frvfdpic_got_section (info)->output_section->vma;
&& (!h || FRVFDPIC_FUNCDESC_LOCAL (info, h)))
{
addend += frvfdpic_got_section (info)->output_section->vma;
- if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@
-3592,8
+3596,7
@@
elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
picrel);
}
}
picrel);
}
}
- else if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ else if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@
-3686,8
+3689,7
@@
elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
if (osec)
addend += osec->output_section->vma;
if (IS_FDPIC (input_bfd)
if (osec)
addend += osec->output_section->vma;
if (IS_FDPIC (input_bfd)
- && (bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ && (bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
if (_frvfdpic_osec_readonly_p (output_bfd,
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
if (_frvfdpic_osec_readonly_p (output_bfd,
@@
-3727,8
+3729,7
@@
elf32_frv_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
}
else
{
}
else
{
- if ((bfd_get_section_flags (output_bfd,
- input_section->output_section)
+ if ((bfd_section_flags (input_section->output_section)
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
& (SEC_ALLOC | SEC_LOAD)) == (SEC_ALLOC | SEC_LOAD))
{
bfd_vma offset;
@@
-4187,7
+4188,7
@@
_frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
elf_hash_table (info)->sgot = s;
if (s == NULL
s = bfd_make_section_anyway_with_flags (abfd, ".got", flags);
elf_hash_table (info)->sgot = s;
if (s == NULL
- || !bfd_set_section_alignment (
abfd,
s, ptralign))
+ || !bfd_set_section_alignment (s, ptralign))
return FALSE;
if (bed->want_got_sym)
return FALSE;
if (bed->want_got_sym)
@@
-4225,14
+4226,14
@@
_frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
(flags | SEC_READONLY));
elf_hash_table (info)->srelgot = s;
if (s == NULL
(flags | SEC_READONLY));
elf_hash_table (info)->srelgot = s;
if (s == NULL
- || !
bfd_set_section_alignment (abfd,
s, 2))
+ || !
bfd_set_section_alignment (
s, 2))
return FALSE;
/* Machine-specific. */
s = bfd_make_section_anyway_with_flags (abfd, ".rofixup",
(flags | SEC_READONLY));
if (s == NULL
return FALSE;
/* Machine-specific. */
s = bfd_make_section_anyway_with_flags (abfd, ".rofixup",
(flags | SEC_READONLY));
if (s == NULL
- || !
bfd_set_section_alignment (abfd,
s, 2))
+ || !
bfd_set_section_alignment (
s, 2))
return FALSE;
frvfdpic_gotfixup_section (info) = s;
return FALSE;
frvfdpic_gotfixup_section (info) = s;
@@
-4280,7
+4281,7
@@
_frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
if (s == NULL
s = bfd_make_section_anyway_with_flags (abfd, ".plt", pltflags);
if (s == NULL
- || !
bfd_set_section_alignment (abfd,
s, bed->plt_alignment))
+ || !
bfd_set_section_alignment (
s, bed->plt_alignment))
return FALSE;
/* FRV-specific: remember it. */
frvfdpic_plt_section (info) = s;
return FALSE;
/* FRV-specific: remember it. */
frvfdpic_plt_section (info) = s;
@@
-4300,7
+4301,7
@@
_frv_create_got_section (bfd *abfd, struct bfd_link_info *info)
s = bfd_make_section_anyway_with_flags (abfd, ".rel.plt",
flags | SEC_READONLY);
if (s == NULL
s = bfd_make_section_anyway_with_flags (abfd, ".rel.plt",
flags | SEC_READONLY);
if (s == NULL
- || !
bfd_set_section_alignment (abfd,
s, bed->s->log_file_align))
+ || !
bfd_set_section_alignment (
s, bed->s->log_file_align))
return FALSE;
/* FRV-specific: remember it. */
frvfdpic_pltrel_section (info) = s;
return FALSE;
/* FRV-specific: remember it. */
frvfdpic_pltrel_section (info) = s;
@@
-4368,7
+4369,7
@@
elf32_frvfdpic_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
? ".rela.bss" : ".rel.bss"),
flags | SEC_READONLY);
if (s == NULL
? ".rela.bss" : ".rel.bss"),
flags | SEC_READONLY);
if (s == NULL
- || !
bfd_set_section_alignment (abfd,
s, bed->s->log_file_align))
+ || !
bfd_set_section_alignment (
s, bed->s->log_file_align))
return FALSE;
}
}
return FALSE;
}
}
@@
-6132,7
+6133,7
@@
elf32_frv_check_relocs (bfd *abfd,
case R_FRV_FUNCDESC_VALUE:
picrel->relocsfdv++;
case R_FRV_FUNCDESC_VALUE:
picrel->relocsfdv++;
- if (bfd_
get_section_flags (abfd,
sec) & SEC_ALLOC)
+ if (bfd_
section_flags (
sec) & SEC_ALLOC)
picrel->relocs32--;
/* Fall through. */
picrel->relocs32--;
/* Fall through. */
@@
-6141,7
+6142,7
@@
elf32_frv_check_relocs (bfd *abfd,
break;
picrel->sym = 1;
break;
picrel->sym = 1;
- if (bfd_
get_section_flags (abfd,
sec) & SEC_ALLOC)
+ if (bfd_
section_flags (
sec) & SEC_ALLOC)
picrel->relocs32++;
break;
picrel->relocs32++;
break;
@@
-6232,9
+6233,7
@@
elf32_frv_check_relocs (bfd *abfd,
/* This relocation describes which C++ vtable entries are actually
used. Record for later use during GC. */
case R_FRV_GNU_VTENTRY:
/* This relocation describes which C++ vtable entries are actually
used. Record for later use during GC. */
case R_FRV_GNU_VTENTRY:
- BFD_ASSERT (h != NULL);
- if (h != NULL
- && !bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
+ if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
return FALSE;
break;
return FALSE;
break;
This page took
0.029485 seconds
and
4
git commands to generate.