diff --git a/0005-add-loongarch64-support-for-bazel.patch b/0005-add-loongarch64-support-for-bazel.patch new file mode 100644 index 0000000000000000000000000000000000000000..a23f1bb76c10ce52fb73da877891180cc8f881bb --- /dev/null +++ b/0005-add-loongarch64-support-for-bazel.patch @@ -0,0 +1,355 @@ +From 35dd50572d20e4e96c9e52284fea91003048f08a Mon Sep 17 00:00:00 2001 +From: Wenlong Zhang +Date: Thu, 17 Apr 2025 20:42:00 +0800 +Subject: [PATCH] add loongarch64 support for bazel + +--- + WORKSPACE | 9 +++++++++ + distdir_deps.bzl | 20 +++++++++++++++---- + platforms/cpu/BUILD | 5 +++++ + src/conditions/BUILD | 9 +++++++++ + src/conditions/BUILD.tools | 9 +++++++++ + .../lib/analysis/config/AutoCpuConverter.java | 4 ++++ + .../LocalConfigPlatformFunction.java | 2 ++ + .../devtools/build/lib/bazel/rules/java/BUILD | 1 + + .../build/lib/bazel/rules/java/jdk.WORKSPACE | 15 ++++++++++++++ + .../lib/bazel/rules/java/jdk.WORKSPACE.tmpl | 16 +++++++++++++++ + .../google/devtools/build/lib/util/CPU.java | 1 + + tools/cpp/lib_cc_configure.bzl | 2 ++ + tools/jdk/BUILD.tools | 3 +++ + tools/platforms/BUILD | 7 +++++++ + tools/platforms/BUILD.tools | 7 +++++++ + 15 files changed, 106 insertions(+), 4 deletions(-) + +diff --git a/WORKSPACE b/WORKSPACE +index 84b1ca1..8bcdb53 100755 +--- a/WORKSPACE ++++ b/WORKSPACE +@@ -206,6 +206,15 @@ http_file( + ], + ) + ++http_file( ++ name = "openjdk_linux_loongarch64_vanilla", ++ downloaded_file_path = "openjdk-linux-loongarch64.tar.gz", ++ sha256 = "4f27223a1f183c9523b21b042507ca80ab65b8cae26f64b30c1375dda39a45ad", ++ urls = [ ++ "https://ftp.loongnix.cn/Java/openjdk11/loongson11.10.0-fx-jdk11.0.23_9-linux-loongarch64.tar.gz" ++ ], ++ ) ++ + http_file( + name = "openjdk_macos_x86_64", + downloaded_file_path = "zulu-macos.tar.gz", +diff --git a/distdir_deps.bzl b/distdir_deps.bzl +index 2ca988e..0087783 100755 +--- a/distdir_deps.bzl ++++ b/distdir_deps.bzl +@@ -20,11 +20,10 @@ DIST_DEPS = { + # + ######################################## + "platforms": { +- "archive": "platforms-0.0.4.tar.gz", +- "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d", ++ "archive": "platforms-0.0.5.tar.gz", ++ "sha256": "cc18d9ae5f2190f5288c37d6a4689b79ccb071efa93b56abc2d7904fbe156f2b", + "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", ++ "https://github.com/Loongson-Cloud-Community/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz", + ], + "used_in": [ + "additional_distfiles", +@@ -370,6 +369,19 @@ DIST_DEPS = { + ], + "used_in": ["test_WORKSPACE_files"], + }, ++ "remotejdk11_linux_loongarch64": { ++ "aliases": [ ++ "remotejdk11_linux_loongarch64_for_testing", ++ "openjdk_linux_loongarch64_vanilla", ++ ], ++ "archive": "loongson11.10.0-fx-jdk11.0.23_9-linux-loongarch64.tar.gz", ++ "sha256": "4f27223a1f183c9523b21b042507ca80ab65b8cae26f64b30c1375dda39a45ad", ++ "strip_prefix": "jdk-11.0.23", ++ "urls": [ ++ "http://ftp.loongnix.cn/Java/openjdk11/loongson11.10.0-fx-jdk11.0.23_9-linux-loongarch64.tar.gz", ++ ], ++ "used_in": [], ++ }, + } + + # Add aliased names +diff --git a/platforms/cpu/BUILD b/platforms/cpu/BUILD +index 51a968a..2f018f8 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..a952ee8 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..e95bbd5 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..a0c56bf 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..97d5346 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/bazel/rules/java/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +index ebbadd8..5a88eca 100755 +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BUILD +@@ -86,6 +86,7 @@ gen_workspace_stanza( + "remote_java_tools_darwin", + "remotejdk11_win_arm64", + "remotejdk17_win_arm64", ++ "remotejdk11_linux_loongarch64", + "rules_cc", + "rules_java", + "rules_proto", +diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE +index e7bca19..1a6a226 100755 +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE +@@ -33,6 +33,21 @@ maybe( + version = "11", + ) + ++maybe( ++ remote_java_repository, ++ ++ name = "remotejdk11_linux_loongarch64", ++ exec_compatible_with = [ ++ "@platforms//os:linux", ++ "@platforms//cpu:loongarch64", ++ ], ++ sha256 = "4f27223a1f183c9523b21b042507ca80ab65b8cae26f64b30c1375dda39a45ad", ++ strip_prefix = "jdk-11.0.23", ++ urls = ["http://ftp.loongnix.cn/Java/openjdk11/loongson11.10.0-fx-jdk11.0.23_9-linux-loongarch64.tar.gz"], ++ ++ version = "11", ++ ) ++ + # This must be kept in sync with the top-level WORKSPACE file. + maybe( + remote_java_repository, +diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl +index 263c921..29564e3 100755 +--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl ++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE.tmpl +@@ -83,6 +83,22 @@ maybe( + version = "11", + ) + ++# This must be kept in sync with the top-level WORKSPACE file. ++maybe( ++ remote_java_repository, ++ name = "remotejdk11_linux_loongarch64", ++ exec_compatible_with = [ ++ "@platforms//os:linux", ++ "@platforms//cpu:loongarch64", ++ ], ++ sha256 = "4f27223a1f183c9523b21b042507ca80ab65b8cae26f64b30c1375dda39a45ad", ++ strip_prefix = "jdk-11.0.23", ++ urls = [ ++ "https://ftp.loongnix.cn/Java/openjdk11/loongson11.10.0-fx-jdk11.0.23_9-linux-loongarch64.tar.gz", ++ ], ++ version = "11", ++) ++ + # This must be kept in sync with the top-level WORKSPACE file. + maybe( + remote_java_repository, +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..87f7dde 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("loong64", "loongarch64")), + UNKNOWN("unknown", ImmutableSet.of()); + + private final String canonicalName; +diff --git a/tools/cpp/lib_cc_configure.bzl b/tools/cpp/lib_cc_configure.bzl +index f8689fb..9ed3359 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 ["loong64", "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..869f5d3 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"], +@@ -451,6 +453,7 @@ _JDKS = [ + "remotejdk11_linux", + "remotejdk11_linux_ppc64le", + "remotejdk11_linux_s390x", ++ "remotejdk11_linux_loongarch64", + "remotejdk15_macos", + "remotejdk15_macos_aarch64", + "remotejdk15_win", +diff --git a/tools/platforms/BUILD b/tools/platforms/BUILD +index 18ff33e..6571aa8 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..5b47f43 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 9ad6ad1408f3623e816b030a38645f1d3d68b2ff..514fe2cd31a210b03db28aff3334428f1b887349 100644 --- a/bazel.spec +++ b/bazel.spec @@ -2,7 +2,7 @@ Name: bazel Version: 5.3.0 -Release: 3 +Release: 4 Summary: Correct, reproducible, and fast builds for everyone. License: Apache License 2.0 URL: http://bazel.io/ @@ -12,6 +12,7 @@ Patch0: 01-fix-invalid-jni_md-select.patch Patch2: 03-set-default-nojdk.patch Patch3: linux-bazel-path-from-getauxval.patch Patch4: 04-riscv-distdir_deps.patch +Patch5: 0005-add-loongarch64-support-for-bazel.patch # for folks with 'bazel' v1 package installed Conflicts: bazel Conflicts: bazel2 @@ -38,6 +39,9 @@ Correct, reproducible, and fast builds for everyone. mkdir third_party/abseil-cpp cp %{SOURCE1} third_party/abseil-cpp %endif +%ifarch loongarch64 +%patch5 -p1 +%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|' "{}" \; @@ -97,6 +101,9 @@ env ./scripts/generate_bash_completion.sh --bazel=output/bazel --output=output/b %attr(0755,root,root) %{bashcompdir}/bazel %changelog +* Thu Apr 17 2025 Wenlong Zhang - 5.3.0-4 +- add loongarch64 support for bazel + * Wed Feb 19 2025 laokz - 5.3.0-3 - remove unused patch1