RISC-V: Fix the error when building RISC-V linux native gdbserver.

The original report is as follow,
https://sourceware.org/pipermail/binutils/2020-June/111383.html

Inlcude the bfd.h in the include/opcode/riscv.h may cause gdbserver fail
to build.  I just want to use the `bfd_boolean` in the opcodes/riscv-opc.c,
but I didn't realize this cause the build failed.  Fortunately, I can also
use the `int` as the function return types just like others in the
opcodes/riscv-opc.c.

	include/
	* opcode/riscv.h: Remove #include "bfd.h".  And change the return
	types of riscv_get_isa_spec_class and riscv_get_priv_spec_class
	from bfd_boolean to int.

	opcodes/
	* riscv-opc.c (riscv_get_isa_spec_class): Change bfd_boolean to int.
	(riscv_get_priv_spec_class): Likewise.
This commit is contained in:
Nelson Chu 2020-06-02 09:44:13 +08:00
parent 721276a249
commit 44730156af
4 changed files with 21 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2020-06-03 Nelson Chu <nelson.chu@sifive.com>
* opcode/riscv.h: Remove #include "bfd.h". And change the return
types of riscv_get_isa_spec_class and riscv_get_priv_spec_class
from bfd_boolean to int.
2020-05-28 Alan Modra <amodra@gmail.com>
PR 26044

View File

@ -24,7 +24,6 @@
#include "riscv-opc.h"
#include <stdlib.h>
#include <stdint.h>
#include "bfd.h"
typedef uint64_t insn_t;
@ -490,9 +489,9 @@ extern const struct riscv_opcode riscv_opcodes[];
extern const struct riscv_opcode riscv_insn_types[];
extern const struct riscv_ext_version riscv_ext_version_table[];
extern bfd_boolean
extern int
riscv_get_isa_spec_class (const char *, enum riscv_isa_spec_class *);
extern bfd_boolean
extern int
riscv_get_priv_spec_class (const char *, enum riscv_priv_spec_class *);
extern const char *
riscv_get_priv_spec_name (enum riscv_priv_spec_class);

View File

@ -1,3 +1,8 @@
2020-06-03 Nelson Chu <nelson.chu@sifive.com>
* riscv-opc.c (riscv_get_isa_spec_class): Change bfd_boolean to int.
(riscv_get_priv_spec_class): Likewise.
2020-06-01 Alan Modra <amodra@gmail.com>
* bpf-desc.c: Regenerate.

View File

@ -958,24 +958,24 @@ static const struct isa_spec_t isa_specs[] =
/* Get the corresponding ISA spec class by giving a ISA spec string. */
bfd_boolean
int
riscv_get_isa_spec_class (const char *s,
enum riscv_isa_spec_class *class)
{
const struct isa_spec_t *version;
if (s == NULL)
return FALSE;
return 0;
for (version = &isa_specs[0]; version->name != NULL; ++version)
if (strcmp (version->name, s) == 0)
{
*class = version->class;
return TRUE;
return 1;
}
/* Can not find the supported ISA spec. */
return FALSE;
return 0;
}
struct priv_spec_t
@ -999,24 +999,24 @@ static const struct priv_spec_t priv_specs[] =
/* Get the corresponding CSR version class by giving a privilege
version string. */
bfd_boolean
int
riscv_get_priv_spec_class (const char *s,
enum riscv_priv_spec_class *class)
{
const struct priv_spec_t *version;
if (s == NULL)
return FALSE;
return 0;
for (version = &priv_specs[0]; version->name != NULL; ++version)
if (strcmp (version->name, s) == 0)
{
*class = version->class;
return TRUE;
return 1;
}
/* Can not find the supported privilege version. */
return FALSE;
return 0;
}
/* Get the corresponding privilege version string by giving a CSR