projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gdb: Switch "info types" over to use the gdb::options framework
[deliverable/binutils-gdb.git]
/
bfd
/
elf32-d30v.c
diff --git
a/bfd/elf32-d30v.c
b/bfd/elf32-d30v.c
index 5a6eafa6d3a6ec9b46e3bb824d601b699000831a..975dbc481d785f7c195c9de8085ee6a378c199b1 100644
(file)
--- a/
bfd/elf32-d30v.c
+++ b/
bfd/elf32-d30v.c
@@
-1,13
+1,12
@@
/* D30V-specific support for 32-bit ELF
/* D30V-specific support for 32-bit ELF
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
- Free Software Foundation, Inc.
+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
Contributed by Martin Hunt (hunt@cygnus.com).
This file is part of BFD, the Binary File Descriptor library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Contributed by Martin Hunt (hunt@cygnus.com).
This file is part of BFD, the Binary File Descriptor library.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version
2
of the License, or
+ the Free Software Foundation; either version
3
of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@
-20,8
+19,8
@@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-#include "bfd.h"
#include "sysdep.h"
#include "sysdep.h"
+#include "bfd.h"
#include "libbfd.h"
#include "elf-bfd.h"
#include "elf/d30v.h"
#include "libbfd.h"
#include "elf-bfd.h"
#include "elf/d30v.h"
@@
-57,7
+56,7
@@
bfd_elf_d30v_reloc (bfd *abfd,
}
r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
}
r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-
input_section, output_bfd, error_message);
+ input_section, output_bfd, error_message);
if (r != bfd_reloc_continue)
return r;
if (r != bfd_reloc_continue)
return r;
@@
-124,7
+123,7
@@
bfd_elf_d30v_reloc (bfd *abfd,
}
in1 |= (relocation >> 26) & 0x3F; /* Top 6 bits. */
}
in1 |= (relocation >> 26) & 0x3F; /* Top 6 bits. */
- in2 |= ((relocation & 0x03FC0000) << 2); /* Next 8 bits. */
+ in2 |= ((relocation & 0x03FC0000) << 2); /* Next 8 bits. */
in2 |= relocation & 0x0003FFFF; /* Bottom 18 bits. */
/* Change a PC-relative instruction to its
in2 |= relocation & 0x0003FFFF; /* Bottom 18 bits. */
/* Change a PC-relative instruction to its
@@
-165,7
+164,7
@@
bfd_elf_d30v_reloc_21 (bfd *abfd,
}
r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
}
r = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data,
-
input_section, output_bfd, error_message);
+ input_section, output_bfd, error_message);
if (r != bfd_reloc_continue)
return r;
if (r != bfd_reloc_continue)
return r;
@@
-255,11
+254,11
@@
static reloc_howto_type elf_d30v_howto_table[] =
/* This reloc does nothing. */
HOWTO (R_D30V_NONE, /* Type. */
0, /* Rightshift. */
/* This reloc does nothing. */
HOWTO (R_D30V_NONE, /* Type. */
0, /* Rightshift. */
-
2
, /* Size (0 = byte, 1 = short, 2 = long). */
-
32,
/* Bitsize. */
+
3
, /* Size (0 = byte, 1 = short, 2 = long). */
+
0,
/* Bitsize. */
FALSE, /* PC_relative. */
0, /* Bitpos. */
FALSE, /* PC_relative. */
0, /* Bitpos. */
- complain_overflow_
bitfield
, /* Complain_on_overflow. */
+ complain_overflow_
dont
, /* Complain_on_overflow. */
bfd_elf_generic_reloc, /* Special_function. */
"R_D30V_NONE", /* Name. */
FALSE, /* Partial_inplace. */
bfd_elf_generic_reloc, /* Special_function. */
"R_D30V_NONE", /* Name. */
FALSE, /* Partial_inplace. */
@@
-509,30
+508,46
@@
bfd_elf32_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
/* Set the howto pointer for an D30V ELF reloc (type REL). */
/* Set the howto pointer for an D30V ELF reloc (type REL). */
-static
void
-d30v_info_to_howto_rel (bfd *abfd
ATTRIBUTE_UNUSED
,
+static
bfd_boolean
+d30v_info_to_howto_rel (bfd *abfd,
arelent *cache_ptr,
Elf_Internal_Rela *dst)
{
unsigned int r_type;
r_type = ELF32_R_TYPE (dst->r_info);
arelent *cache_ptr,
Elf_Internal_Rela *dst)
{
unsigned int r_type;
r_type = ELF32_R_TYPE (dst->r_info);
- BFD_ASSERT (r_type < (unsigned int) R_D30V_max);
+ if (r_type >= (unsigned int) R_D30V_max)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, r_type);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
cache_ptr->howto = &elf_d30v_howto_table[r_type];
cache_ptr->howto = &elf_d30v_howto_table[r_type];
+ return TRUE;
}
/* Set the howto pointer for an D30V ELF reloc (type RELA). */
}
/* Set the howto pointer for an D30V ELF reloc (type RELA). */
-static
void
-d30v_info_to_howto_rela (bfd *abfd
ATTRIBUTE_UNUSED
,
+static
bfd_boolean
+d30v_info_to_howto_rela (bfd *abfd,
arelent *cache_ptr,
Elf_Internal_Rela *dst)
{
unsigned int r_type;
r_type = ELF32_R_TYPE (dst->r_info);
arelent *cache_ptr,
Elf_Internal_Rela *dst)
{
unsigned int r_type;
r_type = ELF32_R_TYPE (dst->r_info);
- BFD_ASSERT (r_type < (unsigned int) R_D30V_max);
+ if (r_type >= (unsigned int) R_D30V_max)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, r_type);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
cache_ptr->howto = &elf_d30v_howto_table[r_type];
cache_ptr->howto = &elf_d30v_howto_table[r_type];
+ return TRUE;
}
#define ELF_ARCH bfd_arch_d30v
}
#define ELF_ARCH bfd_arch_d30v
@@
-540,7
+555,7
@@
d30v_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
#define ELF_MACHINE_ALT1 EM_CYGNUS_D30V
#define ELF_MAXPAGESIZE 0x1000
#define ELF_MACHINE_ALT1 EM_CYGNUS_D30V
#define ELF_MAXPAGESIZE 0x1000
-#define TARGET_BIG_SYM
bfd_elf32_d30v
_vec
+#define TARGET_BIG_SYM
d30v_elf32
_vec
#define TARGET_BIG_NAME "elf32-d30v"
#define elf_info_to_howto d30v_info_to_howto_rela
#define TARGET_BIG_NAME "elf32-d30v"
#define elf_info_to_howto d30v_info_to_howto_rela
This page took
0.025162 seconds
and
4
git commands to generate.