diff --git a/pkgs/development/ocaml-modules/linksem/default.nix b/pkgs/development/ocaml-modules/linksem/default.nix new file mode 100644 index 00000000000..751f4e14a2d --- /dev/null +++ b/pkgs/development/ocaml-modules/linksem/default.nix @@ -0,0 +1,36 @@ +{ lib +, fetchFromGitHub +, stdenv +, findlib +, ocaml +, lem +}: + +lib.throwIfNot (lib.versionAtLeast ocaml.version "4.07") + "linksem is not available for OCaml ${ocaml.version}" + +stdenv.mkDerivation rec { + pname = "ocaml${ocaml.version}-linksem"; + version = "0.8"; + + src = fetchFromGitHub { + owner = "rems-project"; + repo = "linksem"; + rev = version; + hash = "sha256-7/YfDK3TruKCckMzAPLRrwBkHRJcX1S+AzXHWRxkZPA="; + }; + + nativeBuildInputs = [ findlib ocaml ]; + + propagatedBuildInputs = [ lem ]; + + createFindlibDestdir = true; + + meta = with lib; { + homepage = "https://github.com/rems-project/linksem"; + description = "A formalisation of substantial parts of ELF linking and DWARF debug information"; + maintainers = with maintainers; [ genericnerdyusername ]; + license = licenses.bsd2; + platforms = ocaml.meta.platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 6c70185c0cb..145203e837b 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -759,6 +759,8 @@ let linenoise = callPackage ../development/ocaml-modules/linenoise { }; + linksem = callPackage ../development/ocaml-modules/linksem { }; + llvm = callPackage ../development/ocaml-modules/llvm { libllvm = pkgs.llvmPackages_10.libllvm; };