Add support for riscv64

This commit is contained in:
Dingli Zhang 2024-12-19 01:50:34 +00:00
parent ce686e74e7
commit 2d0614e224
2 changed files with 176 additions and 1 deletions

View File

@ -0,0 +1,163 @@
diff -Nurp external-x86_64/go_sdk/BUILD.bazel external/go_sdk/BUILD.bazel
--- external-x86_64/go_sdk/BUILD.bazel 2023-08-28 15:08:25.000000000 +0800
+++ external/go_sdk/BUILD.bazel 2023-08-31 11:47:56.000000000 +0800
@@ -7,8 +7,8 @@ package(default_visibility = ["//visibil
filegroup(
name = "libs",
srcs = glob(
- ["pkg/linux_amd64/**/*.a"],
- exclude = ["pkg/linux_amd64/**/cmd/**"],
+ ["pkg/linux_riscv64/**/*.a"],
+ exclude = ["pkg/linux_riscv64/**/cmd/**"],
),
)
@@ -34,7 +34,7 @@ go_sdk(
name = "go_sdk",
srcs = [":srcs"],
go = "bin/go",
- goarch = "amd64",
+ goarch = "riscv64",
goos = "linux",
headers = [":headers"],
libs = [":libs"],
@@ -60,7 +60,7 @@ package_list(
declare_toolchains(
builder = ":builder",
- host = "linux_amd64",
+ host = "linux_riscv64",
sdk = ":go_sdk",
)
diff -Nurp external-x86_64/go_sdk/src/internal/buildcfg/zbootstrap.go external/go_sdk/src/internal/buildcfg/zbootstrap.go
--- external-x86_64/go_sdk/src/internal/buildcfg/zbootstrap.go 2022-07-12 23:23:16.000000000 +0800
+++ external/go_sdk/src/internal/buildcfg/zbootstrap.go 2022-07-12 23:23:09.000000000 +0800
@@ -12,7 +12,7 @@ const defaultGOMIPS64 = `hardfloat`
const defaultGOPPC64 = `power8`
const defaultGOEXPERIMENT = ``
const defaultGO_EXTLINK_ENABLED = ``
-const defaultGO_LDSO = `/lib64/ld-linux-x86-64.so.2`
+const defaultGO_LDSO = `/lib/ld-linux-riscv64-lp64d.so.1`
const version = `go1.18.4`
const defaultGOOS = runtime.GOOS
const defaultGOARCH = runtime.GOARCH
diff -Nurp external-x86_64/local_config_cc/BUILD external/local_config_cc/BUILD
--- external-x86_64/local_config_cc/BUILD 2023-08-30 14:17:49.000000000 +0800
+++ external/local_config_cc/BUILD 2023-08-31 11:49:36.000000000 +0800
@@ -47,15 +47,15 @@ filegroup(
cc_toolchain_suite(
name = "toolchain",
toolchains = {
- "k8|compiler": ":cc-compiler-k8",
- "k8": ":cc-compiler-k8",
+ "riscv64|compiler": ":cc-compiler-riscv64",
+ "riscv64": ":cc-compiler-riscv64",
"armeabi-v7a|compiler": ":cc-compiler-armeabi-v7a",
"armeabi-v7a": ":cc-compiler-armeabi-v7a",
},
)
cc_toolchain(
- name = "cc-compiler-k8",
+ name = "cc-compiler-riscv64",
toolchain_identifier = "local",
toolchain_config = ":local",
all_files = ":compiler_deps",
@@ -72,7 +72,7 @@ cc_toolchain(
cc_toolchain_config(
name = "local",
- cpu = "k8",
+ cpu = "riscv64",
compiler = "compiler",
toolchain_identifier = "local",
host_system_name = "local",
@@ -80,11 +80,11 @@ cc_toolchain_config(
target_libc = "local",
abi_version = "local",
abi_libc_version = "local",
- cxx_builtin_include_directories = ["/usr/lib/gcc/x86_64-openEuler-linux/12/include",
+ cxx_builtin_include_directories = ["/usr/lib/gcc/riscv64-openEuler-linux/12/include",
"/usr/local/include",
"/usr/include",
"/usr/include/c++/12",
- "/usr/include/c++/12/x86_64-openEuler-linux",
+ "/usr/include/c++/12/riscv64-openEuler-linux",
"/usr/include/c++/12/backward"],
tool_paths = {"ar": "/usr/bin/ar",
"ld": "/usr/bin/ld",
@@ -110,8 +110,7 @@ cc_toolchain_config(
"-fdata-sections"],
dbg_compile_flags = ["-g"],
cxx_flags = ["-std=c++0x"],
- link_flags = ["-fuse-ld=gold",
- "-Wl,-no-as-needed",
+ link_flags = ["-Wl,-no-as-needed",
"-Wl,-z,relro,-z,now",
"-B/usr/bin",
"-pass-exit-codes"],
@@ -125,7 +124,7 @@ cc_toolchain_config(
"-D__TIME__=\"redacted\""],
coverage_compile_flags = ["--coverage"],
coverage_link_flags = ["--coverage"],
- supports_start_end_lib = True,
+ supports_start_end_lib = False,
)
# Android tooling requires a default toolchain for the armeabi-v7a cpu.
diff -Nurp external-x86_64/local_config_cc/builtin_include_directory_paths external/local_config_cc/builtin_include_directory_paths
--- external-x86_64/local_config_cc/builtin_include_directory_paths 2023-08-30 14:17:48.000000000 +0800
+++ external/local_config_cc/builtin_include_directory_paths 2023-08-31 11:49:24.000000000 +0800
@@ -4,9 +4,9 @@ changes to it will be reflected in the a
paths change, Bazel will make sure to rerun the action, even though none of
declared action inputs or the action commandline changes.
-/usr/lib/gcc/x86_64-openEuler-linux/12/include
+/usr/lib/gcc/riscv64-openEuler-linux/12/include
/usr/local/include
/usr/include
/usr/include/c++/12
-/usr/include/c++/12/x86_64-openEuler-linux
+/usr/include/c++/12/riscv64-openEuler-linux
/usr/include/c++/12/backward
diff -Nurp external-x86_64/local_config_cc_toolchains/BUILD external/local_config_cc_toolchains/BUILD
--- external-x86_64/local_config_cc_toolchains/BUILD 2023-08-30 14:17:45.000000000 +0800
+++ external/local_config_cc_toolchains/BUILD 2023-08-31 11:47:52.000000000 +0800
@@ -1,10 +1,10 @@
load("@local_config_platform//:constraints.bzl", "HOST_CONSTRAINTS")
toolchain(
- name = "cc-toolchain-k8",
+ name = "cc-toolchain-riscv64",
exec_compatible_with = HOST_CONSTRAINTS,
target_compatible_with = HOST_CONSTRAINTS,
- toolchain = "@local_config_cc//:cc-compiler-k8",
+ toolchain = "@local_config_cc//:cc-compiler-riscv64",
toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)
diff -Nurp external-x86_64/local_config_platform/constraints.bzl external/local_config_platform/constraints.bzl
--- external-x86_64/local_config_platform/constraints.bzl 2023-08-30 15:04:11.000000000 +0800
+++ external/local_config_platform/constraints.bzl 2023-09-05 15:51:53.000000000 +0800
@@ -1,6 +1,6 @@
# DO NOT EDIT: automatically generated constraints list for local_config_platform
# Auto-detected host platform constraints.
HOST_CONSTRAINTS = [
- '@platforms//cpu:x86_64',
+ '@platforms//cpu:riscv64',
'@platforms//os:linux',
]
+ENV:PATH /root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
diff -Nurp external-x86_64/local_execution_config_platform/BUILD external/local_execution_config_platform/BUILD
--- external-x86_64/local_execution_config_platform/BUILD 2023-08-28 15:02:02.000000000 +0800
+++ external/local_execution_config_platform/BUILD 2023-08-31 11:47:06.000000000 +0800
@@ -18,7 +18,7 @@ platform(
name = "platform",
visibility = ["//visibility:public"],
constraint_values = [
- "@platforms//cpu:x86_64",
+ "@platforms//cpu:riscv64",
"@platforms//os:linux",
":platform_constraint",
],

View File

@ -1,7 +1,7 @@
%global _empty_manifest_terminate_build 0
Name: tensorflow
Version: 2.12.1
Release: 1
Release: 2
Summary: An Open Source Machine Learning Framework for Everyone
License: Apache License 2.0
URL: https://www.tensorflow.org/
@ -10,6 +10,7 @@ Source1: external.tar.bz2.partaa
Source2: external.tar.bz2.partab
Source3: external.tar.bz2.partac
Source4: aarch64_external_files.patch
Source5: riscv64_external_files.patch
Patch0: modify-deps-on-libclang-gcsfs-gast.patch
Patch1: fix-boringssl-compile.patch
Requires: python3-future python3-numpy python3-six python3-astunparse python3-google-pasta python3-opt-einsum
@ -47,6 +48,9 @@ tar xf external.tar.bz2 -C ${extdir}
%ifarch aarch64
patch -d ${extdir} -p0 < %{SOURCE4}
%endif
%ifarch riscv64
patch -d ${extdir} -p0 < %{SOURCE5}
%endif
ln -sfn ${instdir}/embedded_tools ${extdir}/external/bazel_tools
for f in $(find $extdir/external -lname "*/external/*"); do OLDLINK=$(readlink $f); echo $OLDLINK; NEWLINK=${extdir}/external/${OLDLINK#*external}; ln -sf $NEWLINK $f-newlink; mv -Tf $f-newlink $f; done
for f in $(find $extdir/external -lname "*/rpmbuild/*"); do OLDLINK=$(readlink $f); echo $OLDLINK; NEWLINK=${HOME}/rpmbuild/${OLDLINK#*rpmbuild}; ln -sf $NEWLINK $f-newlink; mv -Tf $f-newlink $f;done
@ -56,7 +60,12 @@ for f in $(find $extdir/external -lname "*/rpmbuild/*"); do OLDLINK=$(readlink $
mkdir -p ${HOME}/.local/bin
ln -s -f -T $(command -v python3) ${HOME}/.local/bin/python
export PATH=${HOME}/.local/bin:$PATH
%ifarch riscv64
bazel --output_user_root=`pwd`/../output_user_root build --nofetch --host_copt=-Wno-stringop-truncation //tensorflow/tools/pip_package:build_pip_package --verbose_failures --experimental_local_memory_estimate --jobs=16 \
--define=build_with_mkl=false --define=enable_mkl=false --define=tensorflow_mkldnn_contraction_kernel=0 --define=build_with_mkl_dnn_v1_only=false --define=tensorflow_use_mkldnn=false
%else
bazel --output_user_root=`pwd`/../output_user_root build --nofetch --host_copt=-Wno-stringop-truncation //tensorflow/tools/pip_package:build_pip_package --verbose_failures --experimental_local_memory_estimate --jobs=16
%endif
./bazel-bin/tensorflow/tools/pip_package/build_pip_package dist
%install
@ -67,6 +76,9 @@ bazel --output_user_root=`pwd`/../output_user_root build --nofetch --host_copt=-
%{_bindir}/*
%changelog
* Thu Dec 12 2024 Dingli Zhang <dingli@iscas.ac.cn> - 2.12.1-2
- Add support for riscv64
* Tue Apr 02 2024 zhangxianting <zhangxianting@unionech.com> - 2.12.1-1
* Increase the upper limit version of typing_extensions to fix install, typing_extensions>=3.6.6,<4.6.0 to typing_extensions>=3.6.6,<=4.10.0