Unverified Commit 623ae503 authored by Weijia Wang's avatar Weijia Wang Committed by GitHub
Browse files

Merge pull request #229073 from jackyliu16/loongarch-support

openblas: Enable loongarch64-linux 
parents b4403bcc c8f1166c
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
{ lib, stdenv, fetchFromGitHub, perl, which
{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, which
# Most packages depending on openblas expect integer width to match
# pointer width, but some expect to use 32-bit integers always
# (for compatibility with reference BLAS).
@@ -106,6 +106,13 @@ let
      DYNAMIC_ARCH = setDynamicArch false;
      USE_OPENMP = true;
    };

    loongarch64-linux = {
      BINARY = 64;
      TARGET = setTarget "LOONGSONGENERIC";
      DYNAMIC_ARCH = setDynamicArch false;
      USE_OPENMP = true;
    };
  };
in

@@ -145,6 +152,15 @@ stdenv.mkDerivation rec {
    sha256 = "sha256-F6cXPqQai4kA5zrsa8E0Q7dD9zZHlwZ+B16EOGNXoXs=";
  };

  patches = lib.optionals stdenv.hostPlatform.isLoongArch64 [
    # https://github.com/xianyi/OpenBLAS/pull/3626
    (fetchpatch {
      name = "openblas-0.3.21-fix-loong.patch";
      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sci-libs/openblas/files/openblas-0.3.21-fix-loong.patch?id=37ee4c70278eb41181f69e175575b0152b941655";
      hash = "sha256-iWy11l3wEvzNV08LbhOjnSPj1SjPH8RMnb3ORz7V+gc";
    })
  ];

  postPatch = ''
    # cc1: error: invalid feature modifier 'sve2' in '-march=armv8.5-a+sve+sve2+bf16'
    substituteInPlace Makefile.arm64 --replace "+sve2+bf16" ""