diff --git a/buildifier b/buildifier new file mode 100644 index 0000000000..78f6e2aac6 Binary files /dev/null and b/buildifier differ diff --git a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel index 3fe056f739..5289d15deb 100644 --- a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel +++ b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.3.8.bazel @@ -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 ], diff --git a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel index 5fba98ee3e..6e42f1ef6b 100644 --- a/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel +++ b/crate_universe/3rdparty/crates/BUILD.linux-raw-sys-0.4.10.bazel @@ -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 diff --git a/crate_universe/private/vendor_utils.bzl b/crate_universe/private/vendor_utils.bzl index f35c278824..5b11fab32c 100644 --- a/crate_universe/private/vendor_utils.bzl +++ b/crate_universe/private/vendor_utils.bzl @@ -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", diff --git a/rust/platform/triple.bzl b/rust/platform/triple.bzl index 1d07ce2e9d..673240e842 100644 --- a/rust/platform/triple.bzl +++ b/rust/platform/triple.bzl @@ -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"], } diff --git a/rust/repositories.bzl b/rust/repositories.bzl index 44680f24e7..48aa1791a3 100644 --- a/rust/repositories.bzl +++ b/rust/repositories.bzl @@ -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", diff --git a/test/unit/native_deps/native_deps_test.bzl b/test/unit/native_deps/native_deps_test.bzl index b38748daa7..aec46c359a 100644 --- a/test/unit/native_deps/native_deps_test.bzl +++ b/test/unit/native_deps/native_deps_test.bzl @@ -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),