Add s390x arch support (#2616)

This is continuing of https://github.com/bazelbuild/rules_rust/pull/2557
, added buildifier code changes for s390x arch also.
This commit is contained in:
Repana-Chowdappa 2024-09-06 20:41:20 +05:30 committed by GitHub
parent e97988273b
commit 3d1856b6b6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 37 additions and 7 deletions

BIN
buildifier Normal file

Binary file not shown.

View File

@ -48,6 +48,9 @@ rust_library(
"@rules_rust//rust/platform:i686-unknown-linux-gnu": [
"errno", # i686-unknown-linux-gnu
],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
"errno",
],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
"errno", # x86_64-unknown-linux-gnu
],

View File

@ -53,6 +53,10 @@ rust_library(
"elf", # i686-unknown-linux-gnu
"errno", # i686-unknown-linux-gnu
],
"@rules_rust//rust/platform:s390x-unknown-linux-gnu": [
"elf", # s390x-unknown-linux-gnu
"errno", # s390x-unknown-linux-gnu
],
"@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [
"elf", # x86_64-unknown-linux-gnu
"errno", # x86_64-unknown-linux-gnu

View File

@ -3,14 +3,15 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
_BUILDIFIER_VERSION = "7.1.1"
_BUILDIFIER_VERSION = "7.3.1"
_BUILDIFIER_URL_TEMPLATE = "https://github.com/bazelbuild/buildtools/releases/download/v{version}/{bin}"
_BUILDIFIER_INTEGRITY = {
"buildifier-darwin-amd64": "sha256-d0YNlXr3oCi7GK223EP6ZLbgAGTkc+rINoq4pwOzp0M=",
"buildifier-darwin-arm64": "sha256-yZD0sDsn1qDYb/6TAUcypZwYurDE86TMVjS9OxYp/OM=",
"buildifier-linux-amd64": "sha256-VLfyzo8idhz60mRBbpEgVq6chkX1nrZYO4RrSGSh7oM=",
"buildifier-linux-arm64": "sha256-HZrx9pVqQ5/KKHii+/dguXyl3wD2aeXRlTvrDEYHrHE=",
"buildifier-windows-amd64.exe": "sha256-Mx2IPnyjbIu+KKHoUoqccRAvS+Yj+Tn6PSCk2PAEvqs=",
"buildifier-darwin-amd64": "sha256-N1+CMQPQFiCq7CCgwpxsvKmfT9ByWuMLk2VcZwT0TXE=",
"buildifier-darwin-arm64": "sha256-Wmr8asegn1RVuguJvZnVriO0F03F3J1sDtXOjKrD+BM=",
"buildifier-linux-amd64": "sha256-VHTMUSinToBng9VAgfWBZixL6K5lAi9VfpKB7V3IgAk=",
"buildifier-linux-arm64": "sha256-C/hsS//69PCO7Xe95bIILkrlA5oR4uiwOYTBc8NKVhw=",
"buildifier-linux-s390x": "sha256-4tef9YhdRSdPdlMfGtvHtzoSn1nnZ/d36PveYz2dTi4=",
"buildifier-windows-amd64.exe": "sha256-NwzVdgda0pkwqC9d4TLxod5AhMeEqCUUvU2oDIWs9Kg=",
}
def crates_vendor_deps():
@ -54,6 +55,12 @@ def crates_vendor_deps_targets():
visibility = ["//visibility:public"],
)
native.config_setting(
name = "linux_s390x",
constraint_values = ["@platforms//os:linux", "@platforms//cpu:s390x"],
visibility = ["//visibility:public"],
)
native.config_setting(
name = "macos_amd64",
constraint_values = ["@platforms//os:macos", "@platforms//cpu:x86_64"],
@ -77,6 +84,7 @@ def crates_vendor_deps_targets():
actual = select({
":linux_amd64": "@cargo_bazel.buildifier-linux-amd64//file",
":linux_arm64": "@cargo_bazel.buildifier-linux-arm64//file",
":linux_s390x": "@cargo_bazel.buildifier-linux-s390x//file",
":macos_amd64": "@cargo_bazel.buildifier-darwin-amd64//file",
":macos_arm64": "@cargo_bazel.buildifier-darwin-arm64//file",
":windows": "@cargo_bazel.buildifier-windows-amd64.exe//file",

View File

@ -114,7 +114,7 @@ def get_host_triple(repository_ctx, abi = None):
# Detect the host's cpu architecture
supported_architectures = {
"linux": ["aarch64", "x86_64"],
"linux": ["aarch64", "x86_64", "s390x"],
"macos": ["aarch64", "x86_64"],
"windows": ["aarch64", "x86_64"],
}

View File

@ -39,6 +39,7 @@ DEFAULT_TOOLCHAIN_TRIPLES = {
"aarch64-apple-darwin": "rust_darwin_aarch64",
"aarch64-pc-windows-msvc": "rust_windows_aarch64",
"aarch64-unknown-linux-gnu": "rust_linux_aarch64",
"s390x-unknown-linux-gnu": "rust_linux_s390x",
"x86_64-apple-darwin": "rust_darwin_x86_64",
"x86_64-pc-windows-msvc": "rust_windows_x86_64",
"x86_64-unknown-freebsd": "rust_freebsd_x86_64",

View File

@ -161,6 +161,13 @@ def _bin_has_native_dep_and_alwayslink_test_impl(ctx):
"bazel-out/x64_windows-{}/bin/{}test/unit/native_deps/alwayslink.lo.lib".format(compilation_mode, workspace_prefix),
"-Wl,--no-whole-archive",
]
elif toolchain.target_arch == "s390x":
want = [
"-lstatic=native_dep",
"link-arg=-Wl,--whole-archive",
"link-arg=bazel-out/s390x-{}/bin/{}test/unit/native_deps/libalwayslink.lo".format(compilation_mode, workspace_prefix),
"link-arg=-Wl,--no-whole-archive",
]
else:
want = [
"-lstatic=native_dep",
@ -207,6 +214,13 @@ def _cdylib_has_native_dep_and_alwayslink_test_impl(ctx):
"bazel-out/x64_windows-{}/bin/{}test/unit/native_deps/alwayslink.lo.lib".format(compilation_mode, workspace_prefix),
"-Wl,--no-whole-archive",
]
elif toolchain.target_arch == "s390x":
want = [
"-lstatic=native_dep{}".format(pic_suffix),
"link-arg=-Wl,--whole-archive",
"link-arg=bazel-out/s390x-{}/bin/{}test/unit/native_deps/libalwayslink{}.lo".format(compilation_mode, workspace_prefix, pic_suffix),
"link-arg=-Wl,--no-whole-archive",
]
else:
want = [
"-lstatic=native_dep{}".format(pic_suffix),