From 7e1696e4e1d994c636de8db477144c28fb452c9b Mon Sep 17 00:00:00 2001 From: zhangzikang1992 Date: Tue, 11 Jun 2024 14:45:00 +0800 Subject: [PATCH] Add loongarch64 support --- 04-add-loongarch64-support.patch | 287 +++++++++++++++++++++++++++++++ bazel.spec | 17 +- platforms-0.0.4.tar.gz | Bin 0 -> 5406 bytes 3 files changed, 302 insertions(+), 2 deletions(-) create mode 100644 04-add-loongarch64-support.patch create mode 100755 platforms-0.0.4.tar.gz diff --git a/04-add-loongarch64-support.patch b/04-add-loongarch64-support.patch new file mode 100644 index 0000000..7c4dab2 --- /dev/null +++ b/04-add-loongarch64-support.patch @@ -0,0 +1,287 @@ +From 253d8403167fbb381d05ba1683678057a3227ce7 Mon Sep 17 00:00:00 2001 +From: zhangzikang +Date: Sun, 9 Jun 2024 16:15:07 +0800 +Subject: [PATCH] add loongarch64 support + +--- + distdir_deps.bzl | 2 +- + platforms/cpu/BUILD | 5 +++ + src/conditions/BUILD | 9 ++++++ + src/conditions/BUILD.tools | 9 ++++++ + .../lib/analysis/config/AutoCpuConverter.java | 4 +++ + .../LocalConfigPlatformFunction.java | 2 ++ + .../google/devtools/build/lib/util/CPU.java | 1 + + tools/cpp/BUILD.tools | 29 ++++++++++++++++++ + tools/cpp/lib_cc_configure.bzl | 2 ++ + tools/jdk/BUILD.tools | 2 ++ + tools/platforms/BUILD | 7 +++++ + tools/platforms/BUILD.tools | 7 +++++ + 12 files changed, 78 insertions(+), 1 deletion(-) + +diff --git a/distdir_deps.bzl b/distdir_deps.bzl +index 2ca988e..ca0ded6 100755 +--- a/distdir_deps.bzl ++++ b/distdir_deps.bzl +@@ -21,7 +21,7 @@ DIST_DEPS = { + ######################################## + "platforms": { + "archive": "platforms-0.0.4.tar.gz", +- "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d", ++ "sha256": "ffd6154bcf527a721b4ab607b78c9794ee22ec384c4a1cd0b6d056655921154d", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz", +diff --git a/platforms/cpu/BUILD b/platforms/cpu/BUILD +index 51a968a..723869e 100755 +--- a/platforms/cpu/BUILD ++++ b/platforms/cpu/BUILD +@@ -124,3 +124,8 @@ constraint_value( + name = "riscv64", + constraint_setting = ":cpu", + ) ++ ++constraint_value( ++ name = "loongarch64", ++ constraint_setting = ":cpu", ++) +diff --git a/src/conditions/BUILD b/src/conditions/BUILD +index d5bfac6..8cf3a8c 100755 +--- a/src/conditions/BUILD ++++ b/src/conditions/BUILD +@@ -84,6 +84,15 @@ config_setting( + visibility = ["//visibility:public"], + ) + ++config_setting( ++ name = "linux_loongarch64", ++ constraint_values = [ ++ "@platforms//os:linux", ++ "@platforms//cpu:loongarch64", ++ ], ++ visibility = ["//visibility:public"], ++) ++ + config_setting( + name = "linux_x86_64", + constraint_values = [ +diff --git a/src/conditions/BUILD.tools b/src/conditions/BUILD.tools +index aafdb4f..6641d43 100755 +--- a/src/conditions/BUILD.tools ++++ b/src/conditions/BUILD.tools +@@ -69,6 +69,15 @@ config_setting( + visibility = ["//visibility:public"], + ) + ++config_setting( ++ name = "linux_loongarch64", ++ constraint_values = [ ++ "@platforms//os:linux", ++ "@platforms//cpu:loongarch64", ++ ], ++ visibility = ["//visibility:public"], ++) ++ + config_setting( + name = "linux_x86_64", + constraint_values = [ +diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/AutoCpuConverter.java b/src/main/java/com/google/devtools/build/lib/analysis/config/AutoCpuConverter.java +index 07b1352..3681878 100755 +--- a/src/main/java/com/google/devtools/build/lib/analysis/config/AutoCpuConverter.java ++++ b/src/main/java/com/google/devtools/build/lib/analysis/config/AutoCpuConverter.java +@@ -74,6 +74,8 @@ public class AutoCpuConverter implements Converter { + return "mips64"; + case RISCV64: + return "riscv64"; ++ case LOONGARCH64: ++ return "loongarch64"; + default: + return "unknown"; + } +@@ -118,6 +120,8 @@ public class AutoCpuConverter implements Converter { + return Pair.of(CPU.MIPS64, OS.LINUX); + case "riscv64": + return Pair.of(CPU.RISCV64, OS.LINUX); ++ case "loongarch64": ++ return Pair.of(CPU.LOONGARCH64, OS.LINUX); + default: + // fall through + } +diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java +index c67b109..a20f4fd 100755 +--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java ++++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalConfigPlatformFunction.java +@@ -120,6 +120,8 @@ public class LocalConfigPlatformFunction extends RepositoryFunction { + return "@platforms//cpu:mips64"; + case RISCV64: + return "@platforms//cpu:riscv64"; ++ case LOONGARCH64: ++ return "@platforms//cpu:loongarch64"; + default: + // Unknown, so skip it. + return null; +diff --git a/src/main/java/com/google/devtools/build/lib/util/CPU.java b/src/main/java/com/google/devtools/build/lib/util/CPU.java +index 88ae4a3..04f3e7d 100755 +--- a/src/main/java/com/google/devtools/build/lib/util/CPU.java ++++ b/src/main/java/com/google/devtools/build/lib/util/CPU.java +@@ -29,6 +29,7 @@ public enum CPU { + S390X("s390x", ImmutableSet.of("s390x", "s390")), + MIPS64("mips64", ImmutableSet.of("mips64el", "mips64")), + RISCV64("riscv64", ImmutableSet.of("riscv64")), ++ LOONGARCH64("loongarch64", ImmutableSet.of("loongarch64")), + UNKNOWN("unknown", ImmutableSet.of()); + + private final String canonicalName; +diff --git a/tools/cpp/BUILD.tools b/tools/cpp/BUILD.tools +index 3a85d5f..e083dde 100755 +--- a/tools/cpp/BUILD.tools ++++ b/tools/cpp/BUILD.tools +@@ -108,6 +108,7 @@ cc_toolchain_suite( + "ppc|compiler": ":cc-compiler-ppc", + "mips64|compiler": ":cc-compiler-mips64", + "riscv64|compiler": ":cc-compiler-riscv64", ++ "loongarch64|compiler": ":cc-compiler-loongarch64", + "k8": ":cc-compiler-local", + "piii": ":cc-compiler-local", + "arm": ":cc-compiler-local", +@@ -117,6 +118,7 @@ cc_toolchain_suite( + "ppc64": ":cc-compiler-local", + "mips64": ":cc-compiler-local", + "riscv64": ":cc-compiler-local", ++ "loongarch64": ":cc-compiler-local", + "darwin": ":cc-compiler-darwin", + "freebsd": ":cc-compiler-freebsd", + "armeabi-v7a": ":cc-compiler-armeabi-v7a", +@@ -160,6 +162,33 @@ toolchain( + toolchain_type = ":toolchain_type", + ) + ++cc_toolchain( ++ name = "cc-compiler-loongarch64", ++ all_files = ":empty", ++ ar_files = ":empty", ++ as_files = ":empty", ++ compiler_files = ":empty", ++ dwp_files = ":empty", ++ linker_files = ":empty", ++ objcopy_files = ":empty", ++ strip_files = ":empty", ++ supports_param_files = 1, ++ toolchain_config = ":local_linux", ++ toolchain_identifier = "local_linux", ++) ++ ++toolchain( ++ name = "cc-toolchain-loongarch64", ++ exec_compatible_with = [ ++ "@platforms//cpu:loongarch64", ++ ], ++ target_compatible_with = [ ++ "@platforms//cpu:loongarch64", ++ ], ++ toolchain = ":cc-compiler-loongarch64", ++ toolchain_type = ":toolchain_type", ++) ++ + cc_toolchain( + name = "cc-compiler-ppc", + all_files = ":empty", +diff --git a/tools/cpp/lib_cc_configure.bzl b/tools/cpp/lib_cc_configure.bzl +index f8689fb..dc229ca 100755 +--- a/tools/cpp/lib_cc_configure.bzl ++++ b/tools/cpp/lib_cc_configure.bzl +@@ -202,6 +202,8 @@ def get_cpu_value(repository_ctx): + return "mips64" + if arch in ["riscv64"]: + return "riscv64" ++ if arch in ["loongarch64"]: ++ return "loongarch64" + if arch in ["arm", "armv7l"]: + return "arm" + if arch in ["aarch64"]: +diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools +index bab066e..e322389 100755 +--- a/tools/jdk/BUILD.tools ++++ b/tools/jdk/BUILD.tools +@@ -95,6 +95,7 @@ cc_library( + "//src/conditions:linux_s390x": [":jni_md_header-linux"], + "//src/conditions:linux_mips64": [":jni_md_header-linux"], + "//src/conditions:linux_riscv64": [":jni_md_header-linux"], ++ "//src/conditions:linux_loongarch64": [":jni_md_header-linux"], + "//src/conditions:linux_x86_64": [":jni_md_header-linux"], + "//src/conditions:darwin": [":jni_md_header-darwin"], + "//src/conditions:freebsd": [":jni_md_header-freebsd"], +@@ -108,6 +109,7 @@ cc_library( + "//src/conditions:linux_s390x": ["include/linux"], + "//src/conditions:linux_mips64": ["include/linux"], + "//src/conditions:linux_riscv64": ["include/linux"], ++ "//src/conditions:linux_loongarch64": ["include/linux"], + "//src/conditions:linux_x86_64": ["include/linux"], + "//src/conditions:darwin": ["include/darwin"], + "//src/conditions:freebsd": ["include/freebsd"], +diff --git a/tools/platforms/BUILD b/tools/platforms/BUILD +index 18ff33e..c658fea 100755 +--- a/tools/platforms/BUILD ++++ b/tools/platforms/BUILD +@@ -63,6 +63,11 @@ alias( + actual = "@platforms//cpu:riscv64", + ) + ++alias( ++ name = "loongarch64", ++ actual = "@platforms//cpu:loongarch64", ++) ++ + alias( + name = "os", + actual = "@platforms//os:os", +@@ -121,6 +126,7 @@ platform( + "@platforms//cpu:s390x", + "@platforms//cpu:mips64", + "@platforms//cpu:riscv64", ++ "@platforms//cpu:loongarch64", + ], + host_platform = True, + os_constraints = [ +@@ -145,6 +151,7 @@ platform( + "@platforms//cpu:s390x", + "@platforms//cpu:mips64", + "@platforms//cpu:riscv64", ++ "@platforms//cpu:loongarch64", + ], + os_constraints = [ + "@platforms//os:osx", +diff --git a/tools/platforms/BUILD.tools b/tools/platforms/BUILD.tools +index 27a11ae..e9f115f 100755 +--- a/tools/platforms/BUILD.tools ++++ b/tools/platforms/BUILD.tools +@@ -51,6 +51,11 @@ alias( + actual = "@platforms//cpu:riscv64", + ) + ++alias( ++ name = "loongarch64", ++ actual = "@platforms//cpu:loongarch64", ++) ++ + alias( + name = "os", + actual = "@platforms//os:os", +@@ -109,6 +114,7 @@ platform( + "@platforms//cpu:s390x", + "@platforms//cpu:mips64", + "@platforms//cpu:riscv64", ++ "@platforms//cpu:loongarch64", + ], + host_platform = True, + os_constraints = [ +@@ -133,6 +139,7 @@ platform( + "@platforms//cpu:s390x", + "@platforms//cpu:mips64", + "@platforms//cpu:riscv64", ++ "@platforms//cpu:loongarch64", + ], + os_constraints = [ + "@platforms//os:osx", +-- +2.43.0 + diff --git a/bazel.spec b/bazel.spec index 45af5ab..ad8611e 100644 --- a/bazel.spec +++ b/bazel.spec @@ -2,15 +2,18 @@ Name: bazel Version: 5.3.0 -Release: 1 +Release: 2 Summary: Correct, reproducible, and fast builds for everyone. License: Apache License 2.0 URL: http://bazel.io/ Source0: https://github.com/bazelbuild/bazel/releases/download/%{version}/bazel-%{version}-dist.zip +Source1: platforms-0.0.4.tar.gz Patch0: 01-fix-invalid-jni_md-select.patch Patch1: 02-use-riscv64-jdk.patch Patch2: 03-set-default-nojdk.patch Patch3: linux-bazel-path-from-getauxval.patch +Patch4: 04-add-loongarch64-support.patch + # for folks with 'bazel' v1 package installed Conflicts: bazel Conflicts: bazel2 @@ -34,6 +37,13 @@ Correct, reproducible, and fast builds for everyone. %patch2 -p1 %patch3 -p1 +%ifarch loongarch64 +%patch4 -p1 + +# replace platforms-0.0.4.tar.gz for support loongarch64 +%{__cp} %{SOURCE1} ./derived/distdir -f +%endif + %build find . -type f -regextype posix-extended -iregex '.*(sh|txt|py|_stub|stub_.*|bazel|get_workspace_status|protobuf_support|_so)' -exec %{__sed} -i -e '1s|^#!/usr/bin/env python$|#!/usr/bin/env python3|' "{}" \; export EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS} --python_path=/usr/bin/python3" @@ -92,6 +102,9 @@ env ./scripts/generate_bash_completion.sh --bazel=output/bazel --output=output/b %attr(0755,root,root) %{bashcompdir}/bazel %changelog +* Sun Jun 9 2024 zhangzikang - 5.3.0-2 +- add loongarch64 support + * Tue Sep 12 2023 Jincheng Miao - 5.3.0-1 - add bazel-%{version}-%{_os}-%{_arch} to install root path @@ -107,7 +120,7 @@ env ./scripts/generate_bash_completion.sh --bazel=output/bazel --output=output/b * Sat Oct 22 2022 Jincheng Miao - 5.0.0-0 - Update version to 5.0.0 for TF-2.9 build -* Thu Jun 22 2022 zhangshaoning - 4.2.1-0 +* Wed Jun 22 2022 zhangshaoning - 4.2.1-0 - update version to 4.2.1 * Mon Aug 9 2021 zhangtao - 3.5.0-4 diff --git a/platforms-0.0.4.tar.gz b/platforms-0.0.4.tar.gz new file mode 100755 index 0000000000000000000000000000000000000000..f1455c1a93410b5ca5c697284e66900b8af3dfed GIT binary patch literal 5406 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