diff --git a/04-add-loongarch64-support.patch b/04-add-loongarch64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..7c4dab2fc9c8c20b73e16fc31309aa72d509f8b3 --- /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 39e266a31753231d51754555b08be092617a2643..7ce432a764f990eedbf5c8db1e643d6098a8ab3a 100644 --- a/bazel.spec +++ b/bazel.spec @@ -2,17 +2,20 @@ Name: bazel Version: 5.3.0 -Release: 2 +Release: 3 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: abseil-cpp-riscv.patch +Source2: 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 +Patch3: linux-bazel-path-from-getauxval.patch Patch4: 04-riscv-distdir_deps.patch +Patch5: 04-add-loongarch64-support.patch + # for folks with 'bazel' v1 package installed Conflicts: bazel Conflicts: bazel2 @@ -41,6 +44,13 @@ mkdir third_party/abseil-cpp cp %{SOURCE1} third_party/abseil-cpp %endif +%ifarch loongarch64 +%patch5 -p1 + +# replace platforms-0.0.4.tar.gz for support loongarch64 +%{__cp} %{SOURCE2} ./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" @@ -99,6 +109,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-3 +- add loongarch64 support + * Tue Jul 09 2024 laokz - 5.3.0-2 - riscv64: fix 'rdcycle' SIGILL of dependency abseil-cpp @@ -117,7 +130,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 Binary files /dev/null and b/platforms-0.0.4.tar.gz differ