diff --git a/build/third_party_gn/musl/musl_template.gni b/build/third_party_gn/musl/musl_template.gni index a3ceff55c049af3492b20e0edf62b7bbc519a735..23b6f190679a551f7bde3784b36bcd0699414e78 100644 --- a/build/third_party_gn/musl/musl_template.gni +++ b/build/third_party_gn/musl/musl_template.gni @@ -292,6 +292,8 @@ template("musl_libs") { "-march=armv8", "-DOHOS_LG_CHUNK_DEFAULT=19", # For jemalloc 4.X ] + } else if (musl_arch == "riscv64") { + cflags += [ "-march=riscv64" ] } else if (musl_arch == "x86_64") { cflags += [ "-march=x86-64" ] } diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn index 3906faa6c7e824bef8c527e3b4cba685f247a477..12a4f376c429c017d7404631467592437fb092f6 100755 --- a/build/toolchain/linux/BUILD.gn +++ b/build/toolchain/linux/BUILD.gn @@ -12,6 +12,15 @@ # limitations under the License. import("$build_root/toolchain/gcc_toolchain.gni") +clang_toolchain("clang_riscv64") { + toolchain_args = { + current_cpu = "riscv64" + current_os = "linux" + } + executable_extension = "" + shlib_extension = ".so" +} + clang_toolchain("clang_arm") { toolchain_args = { current_cpu = "arm" @@ -30,6 +39,22 @@ clang_toolchain("clang_arm64") { shlib_extension = ".so" } +gcc_toolchain("riscv64") { + toolprefix = "riscv64-linux-gnu-" + + cc = "${toolprefix}gcc" + cxx = "${toolprefix}g++" + + ar = "${toolprefix}ar" + ld = cxx + + toolchain_args = { + current_cpu = "riscv64" + current_os = "linux" + is_clang = false + } +} + gcc_toolchain("arm64") { toolprefix = "aarch64-linux-gnu-"