From 1de1c2d2c805ae4f325e8a59240963829c93fb52 Mon Sep 17 00:00:00 2001 From: Samuel Ainsworth Date: Sat, 21 Feb 2026 11:32:36 -0500 Subject: [PATCH] xla: add aarch64-darwin support - Add cctools.libtool for darwin toolchain detection - Set macOS deployment target (11.0) to fix availability errors - Add per-platform fetchAttrs hash for aarch64-darwin - Remove badPlatforms now that darwin builds work --- pkgs/by-name/xl/xla/package.nix | 36 ++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/xl/xla/package.nix b/pkgs/by-name/xl/xla/package.nix index af80d031e614..85be5651e6a8 100644 --- a/pkgs/by-name/xl/xla/package.nix +++ b/pkgs/by-name/xl/xla/package.nix @@ -1,6 +1,7 @@ { bazel_7, buildBazelPackage, + cctools, curl, double-conversion, fetchFromGitHub, @@ -18,6 +19,7 @@ python3, snappy, sqlite, + stdenv, which, zlib, }: @@ -71,7 +73,8 @@ in gitMinimal pythonEnv # necessary for some patchShebang'ing which - ]; + ] + ++ lib.optional stdenv.hostPlatform.isDarwin cctools.libtool; buildInputs = [ curl @@ -136,6 +139,14 @@ in "--host_cxxopt=cstdint" # Exclude mobile/iOS targets that have Bazel incompatibilities "--build_tag_filters=-mobile,-ios" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # Set macOS deployment target to suppress availability errors (e.g. + # futimens requires 10.13+) in both target and host-tool builds. + "--copt=-mmacosx-version-min=11.0" + "--host_copt=-mmacosx-version-min=11.0" + "--linkopt=-mmacosx-version-min=11.0" + "--host_linkopt=-mmacosx-version-min=11.0" ]; removeRulesCC = false; @@ -146,10 +157,16 @@ in removeLocal = false; fetchAttrs = { - sha256 = "sha256-OJfSqDlEC+yhWwwMwaD5HGvuHm8OWk+yQxmbH0/gZ88="; + sha256 = + { + x86_64-linux = "sha256-OJfSqDlEC+yhWwwMwaD5HGvuHm8OWk+yQxmbH0/gZ88="; + aarch64-darwin = "sha256-sKxtdgozCV1on1gd+bm8FKyFxP0u70Hs24OdLNA3jh0="; + } + .${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}"); preInstall = '' rm -rf $bazelOut/external/{local_config_python,\@local_config_python.marker} rm -rf $bazelOut/external/{local_config_sh,\@local_config_sh.marker} + rm -rf $bazelOut/external/{local_config_xcode,\@local_config_xcode.marker} rm -rf $bazelOut/external/{local_execution_config_python,\@local_execution_config_python.marker} rm -rf $bazelOut/external/{local_jdk,\@local_jdk.marker} ''; @@ -187,18 +204,9 @@ in homepage = "https://github.com/openxla/xla"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ samuela ]; - platforms = lib.platforms.unix; - badPlatforms = [ - # ERROR: /build/output/external/local_config_cc/BUILD: no such target - # '@@local_config_cc//:cc-compiler-k8': target 'cc-compiler-k8' not declared in package '' - # defined by /build/output/external/local_config_cc/BUILD - "aarch64-linux" - - # Bazel fails to build on darwin: - # ERROR: no such package '@@bazel_tools~xcode_configure_extension~local_config_xcode//': - # BUILD file not found in directory '' of external repository @@bazel_tools~xcode_configure_extension~local_config_xcode. - # Add a BUILD file to a directory to mark it as a package. - lib.systems.inspect.patterns.isDarwin + platforms = [ + "x86_64-linux" + "aarch64-darwin" ]; }; }