2023-03-12 13:04:31

by Paran Lee

[permalink] [raw]
Subject: [RESEND PATCH] perf tools riscv: Add support for riscv lookup_binutils_path

Add to know RISC-V binutils path.

Signed-off-by: Paran Lee <[email protected]>
---
tools/perf/arch/common.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/tools/perf/arch/common.c b/tools/perf/arch/common.c
index 59dd875fd5e4..6ac7a22244c0 100644
--- a/tools/perf/arch/common.c
+++ b/tools/perf/arch/common.c
@@ -43,6 +43,20 @@ const char *const powerpc_triplets[] = {
NULL
};

+const char *const riscv32_triplets[] = {
+ "riscv32-unknown-linux-gnu-",
+ "riscv32-linux-android-",
+ "riscv32-linux-gnu-",
+ NULL
+};
+
+const char *const riscv64_triplets[] = {
+ "riscv64-unknown-linux-gnu-",
+ "riscv64-linux-android-",
+ "riscv64-linux-gnu-",
+ NULL
+};
+
const char *const s390_triplets[] = {
"s390-ibm-linux-",
"s390x-linux-gnu-",
@@ -168,6 +182,10 @@ static int perf_env__lookup_binutils_path(struct perf_env *env,
path_list = powerpc_triplets;
else if (!strcmp(arch, "sh"))
path_list = sh_triplets;
+ else if (!strcmp(arch, "riscv32"))
+ path_list = riscv32_triplets;
+ else if (!strcmp(arch, "riscv64"))
+ path_list = riscv64_triplets;
else if (!strcmp(arch, "s390"))
path_list = s390_triplets;
else if (!strcmp(arch, "sparc"))
--
2.34.1



2023-03-12 13:40:33

by Conor Dooley

[permalink] [raw]
Subject: Re: [RESEND PATCH] perf tools riscv: Add support for riscv lookup_binutils_path

On Sun, Mar 12, 2023 at 10:03:05PM +0900, Paran Lee wrote:
> Add to know RISC-V binutils path.
>
> Signed-off-by: Paran Lee <[email protected]>
> ---
> tools/perf/arch/common.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/tools/perf/arch/common.c b/tools/perf/arch/common.c
> index 59dd875fd5e4..6ac7a22244c0 100644
> --- a/tools/perf/arch/common.c
> +++ b/tools/perf/arch/common.c
> @@ -43,6 +43,20 @@ const char *const powerpc_triplets[] = {
> NULL
> };
>
> +const char *const riscv32_triplets[] = {
> + "riscv32-unknown-linux-gnu-",
> + "riscv32-linux-android-",
> + "riscv32-linux-gnu-",
> + NULL
> +};
> +
> +const char *const riscv64_triplets[] = {
> + "riscv64-unknown-linux-gnu-",
> + "riscv64-linux-android-",
> + "riscv64-linux-gnu-",

I don't know anything about perf, so I could be asking a really silly
question here, but how come riscvN-linux- has been omitted here?
The kernel.org toolchains [1] are prefixed that way, although I noticed
in your v1 that you'd seemingly duplicated the arm64 patterns, so I am
curious as to whether the omission is intentional.

Cheers,
Conor.

[1] https://mirrors.edge.kernel.org/pub/tools/crosstool/

> + NULL
> +};
> +
> const char *const s390_triplets[] = {
> "s390-ibm-linux-",
> "s390x-linux-gnu-",
> @@ -168,6 +182,10 @@ static int perf_env__lookup_binutils_path(struct perf_env *env,
> path_list = powerpc_triplets;
> else if (!strcmp(arch, "sh"))
> path_list = sh_triplets;
> + else if (!strcmp(arch, "riscv32"))
> + path_list = riscv32_triplets;
> + else if (!strcmp(arch, "riscv64"))
> + path_list = riscv64_triplets;
> else if (!strcmp(arch, "s390"))
> path_list = s390_triplets;
> else if (!strcmp(arch, "sparc"))
> --
> 2.34.1
>


Attachments:
(No filename) (1.71 kB)
signature.asc (228.00 B)
Download all attachments