diff --git a/pkgs/development/ocaml-modules/hacl-star/aligned-alloc.patch b/pkgs/development/ocaml-modules/hacl-star/aligned-alloc.patch new file mode 100644 index 00000000000..a5c0b672069 --- /dev/null +++ b/pkgs/development/ocaml-modules/hacl-star/aligned-alloc.patch @@ -0,0 +1,14 @@ +diff --git a/hacl-star-raw/karamel/include/krml/internal/target.h b/hacl-star-raw/karamel/include/krml/internal/target.h +index 695873a..c0aed18 100644 +--- a/hacl-star-raw/karamel/include/krml/internal/target.h ++++ b/hacl-star-raw/karamel/include/krml/internal/target.h +@@ -82,6 +82,9 @@ + # endif + # if (defined(_MSC_VER) || (defined(__MINGW32__) && defined(__MINGW64_VERSION_MAJOR))) + # define KRML_ALIGNED_MALLOC(X, Y) _aligned_malloc(Y, X) ++# elif defined(__APPLE__) ++# include ++# define KRML_ALIGNED_MALLOC(X, Y) _mm_malloc(Y, X) + # else + # define KRML_ALIGNED_MALLOC(X, Y) aligned_alloc(X, Y) + # endif diff --git a/pkgs/development/ocaml-modules/hacl-star/raw.nix b/pkgs/development/ocaml-modules/hacl-star/raw.nix index 027d6fe1785..de20299cd4a 100644 --- a/pkgs/development/ocaml-modules/hacl-star/raw.nix +++ b/pkgs/development/ocaml-modules/hacl-star/raw.nix @@ -20,6 +20,10 @@ stdenv.mkDerivation rec { stripRoot = false; }; + patches = [ + ./aligned-alloc.patch + ]; + minimalOCamlVersion = "4.08"; # strictoverflow is disabled because it breaks aarch64-darwin