From 44730156af5f411d2c47af22558e7bd84dc4fcea Mon Sep 17 00:00:00 2001 From: Nelson Chu Date: Tue, 2 Jun 2020 09:44:13 +0800 Subject: [PATCH] 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. --- include/ChangeLog | 6 ++++++ include/opcode/riscv.h | 5 ++--- opcodes/ChangeLog | 5 +++++ opcodes/riscv-opc.c | 16 ++++++++-------- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index 08eadb6cbd6..5c0a82b5f8e 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,9 @@ +2020-06-03 Nelson Chu + + * 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 PR 26044 diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h index feeaa6e8dca..fecf41042f4 100644 --- a/include/opcode/riscv.h +++ b/include/opcode/riscv.h @@ -24,7 +24,6 @@ #include "riscv-opc.h" #include #include -#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); diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index d842ab64672..950819daf35 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2020-06-03 Nelson Chu + + * riscv-opc.c (riscv_get_isa_spec_class): Change bfd_boolean to int. + (riscv_get_priv_spec_class): Likewise. + 2020-06-01 Alan Modra * bpf-desc.c: Regenerate. diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c index f011f1bbb7e..4481359a876 100644 --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -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 -- 2.30.2