From 8f16a978482c23bf203ddcca0ce28e564ed3eb79 Mon Sep 17 00:00:00 2001 From: Ali Caglayan Date: Sun, 12 Mar 2023 21:17:07 +0100 Subject: [PATCH] ocaml: add framePointer option Signed-off-by: Ali Caglayan --- pkgs/development/compilers/ocaml/generic.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix index c2cc7bb40b5f..7797ec036d00 100644 --- a/pkgs/development/compilers/ocaml/generic.nix +++ b/pkgs/development/compilers/ocaml/generic.nix @@ -12,6 +12,7 @@ in , flambdaSupport ? false , spaceTimeSupport ? false , unsafeStringSupport ? false +, framePointerSupport ? false }: assert useX11 -> safeX11 stdenv; @@ -19,6 +20,7 @@ assert aflSupport -> lib.versionAtLeast version "4.05"; assert flambdaSupport -> lib.versionAtLeast version "4.03"; assert spaceTimeSupport -> lib.versionAtLeast version "4.04" && lib.versionOlder version "4.12"; assert unsafeStringSupport -> lib.versionAtLeast version "4.06" && lib.versionOlder version "5.0"; +assert framePointerSupport -> lib.versionAtLeast version "4.01"; let src = args.src or (fetchurl { @@ -28,9 +30,14 @@ let in let - useNativeCompilers = !stdenv.isMips; - inherit (lib) optional optionals optionalString; - pname = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}"; + useNativeCompilers = !stdenv.isMips; + inherit (lib) optional optionals optionalString strings concatStrings; + pname = concatStrings [ "ocaml" + (optionalString aflSupport "+afl") + (optionalString spaceTimeSupport "+spacetime") + (optionalString flambdaSupport "+flambda") + (optionalString framePointerSupport "+fp") + ]; in let @@ -61,6 +68,7 @@ stdenv.mkDerivation (args // { ++ optional aflSupport (flags "--with-afl" "-afl-instrument") ++ optional flambdaSupport (flags "--enable-flambda" "-flambda") ++ optional spaceTimeSupport (flags "--enable-spacetime" "-spacetime") + ++ optional framePointerSupport (flags "--enable-frame-pointers" "-with-frame-pointers") ++ optionals unsafeStringSupport [ "--disable-force-safe-string" "DEFAULT_STRING=unsafe"