From d71b1cc7a398e35be8e685fb4cf397d5531848e3 Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 23 May 2024 14:46:00 +1000 Subject: [PATCH 1/8] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'nixpkgs': 'github:katrinafyi/nixpkgs/4648e4b766a25d1324803c1bfaf60f6b388e460c' (2024-02-21) → 'github:nixos/nixpkgs/5710852ba686cc1fd0d3b8e22b3117d43ba374c2' (2024-05-21) • Removed input 'nixpkgs-patch-1' • Removed input 'nixpkgs-upstream' --- flake.lock | 38 ++++---------------------------------- flake.nix | 8 +++----- 2 files changed, 7 insertions(+), 39 deletions(-) diff --git a/flake.lock b/flake.lock index dfeb06e..d2ea13a 100644 --- a/flake.lock +++ b/flake.lock @@ -2,39 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1708556654, - "narHash": "sha256-Ozz7xanIz+qxyy7CtlDapQ/uc24ngxNFYIZfMzQWrmk=", - "owner": "katrinafyi", - "repo": "nixpkgs", - "rev": "4648e4b766a25d1324803c1bfaf60f6b388e460c", - "type": "github" - }, - "original": { - "owner": "katrinafyi", - "ref": "pac-nix", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-patch-1": { - "flake": false, - "locked": { - "narHash": "sha256-Y4ya/hJsQ1B4iHYwJxRDW2ZtP/ErGn6zekvT5Q6rw+o=", - "type": "file", - "url": "https://github.com/NixOS/nixpkgs/compare/ffacc011dffba16ca360028d1f81cae99ff1280f..9a9cf8661391f21f7a44dc4823f815524351c94f.patch" - }, - "original": { - "type": "file", - "url": "https://github.com/NixOS/nixpkgs/compare/ffacc011dffba16ca360028d1f81cae99ff1280f..9a9cf8661391f21f7a44dc4823f815524351c94f.patch" - } - }, - "nixpkgs-upstream": { - "locked": { - "lastModified": 1707689078, - "narHash": "sha256-UUGmRa84ZJHpGZ1WZEBEUOzaPOWG8LZ0yPg1pdDF/yM=", + "lastModified": 1716330097, + "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f9d39fb9aff0efee4a3d5f4a6d7c17701d38a1d8", + "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", "type": "github" }, "original": { @@ -46,9 +18,7 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs", - "nixpkgs-patch-1": "nixpkgs-patch-1", - "nixpkgs-upstream": "nixpkgs-upstream" + "nixpkgs": "nixpkgs" } } }, diff --git a/flake.nix b/flake.nix index 90f1d20..818b39d 100644 --- a/flake.nix +++ b/flake.nix @@ -2,11 +2,9 @@ nixConfig.extra-substituters = [ "https://pac-nix.cachix.org/" ]; nixConfig.extra-trusted-public-keys = [ "pac-nix.cachix.org-1:l29Pc2zYR5yZyfSzk1v17uEZkhEw0gI4cXuOIsxIGpc=" ]; - inputs.nixpkgs-upstream.url = "github:nixos/nixpkgs/nixos-unstable"; - inputs.nixpkgs.url = "github:katrinafyi/nixpkgs/pac-nix"; - - inputs.nixpkgs-patch-1.url = "https://github.com/NixOS/nixpkgs/compare/ffacc011dffba16ca360028d1f81cae99ff1280f..9a9cf8661391f21f7a44dc4823f815524351c94f.patch"; - inputs.nixpkgs-patch-1.flake = false; + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + # inputs.nixpkgs-upstream.url = "github:nixos/nixpkgs/nixos-unstable"; + # inputs.nixpkgs.url = "github:katrinafyi/nixpkgs/pac-nix"; outputs = { self, nixpkgs, ... }: let From 6d842366a9059bae54eb6a5306392c43c604f3fb Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 23 May 2024 14:48:05 +1000 Subject: [PATCH 2/8] alive2-aslp: stringify jarLocation --- llvm-translator/alive2-aslp.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm-translator/alive2-aslp.nix b/llvm-translator/alive2-aslp.nix index e390b5d..7eee340 100644 --- a/llvm-translator/alive2-aslp.nix +++ b/llvm-translator/alive2-aslp.nix @@ -21,6 +21,6 @@ alive2-regehr.overrideAttrs (prev: { }; cmakeFlags = prev.cmakeFlags - ++ [ (lib.cmakeFeature "ANTLR4_JAR_LOCATION" antlr.jarLocation) ]; + ++ [ (lib.cmakeFeature "ANTLR4_JAR_LOCATION" "${antlr.jarLocation}") ]; }) From 2666a4161e7c4aaafbe5b7fdc69e7dc2c7ab16f1 Mon Sep 17 00:00:00 2001 From: rina Date: Tue, 4 Jun 2024 12:56:42 +1000 Subject: [PATCH 3/8] add ctypes dependency. ocaml-llvm-14.0.6 is incompatible with ocaml>=5. --- llvm-translator/ocaml-llvm.nix | 25 +++++++++++++------------ overlay.nix | 9 +++++---- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/llvm-translator/ocaml-llvm.nix b/llvm-translator/ocaml-llvm.nix index ffa6558..ebdce9b 100644 --- a/llvm-translator/ocaml-llvm.nix +++ b/llvm-translator/ocaml-llvm.nix @@ -1,36 +1,37 @@ { lib , fetchFromGitHub , buildDunePackage -, llvmPackages +, libllvm , ctypes +, ctypes-foreign , zlib , libxml2 , ncurses }: -let libllvm = llvmPackages.libllvm; -in buildDunePackage rec { +buildDunePackage rec { pname = "llvm"; - version = "14.0.6"; + version = libllvm.version; - nativeBuildInputs = [ libllvm ]; + # nativeBuildInputs = [ libllvm ]; duneSrc = fetchFromGitHub { owner = "alan-j-hu"; repo = "llvm-dune"; rev = "v${version}"; - hash = "sha256-GHxncfthpMTeVdlDhe7shKWJvoa8Ctn5tU4AfOyOS2w="; + hash = + lib.throwIfNot (version == "14.0.6") "ocaml-llvm libllvm mismatch" + "sha256-GHxncfthpMTeVdlDhe7shKWJvoa8Ctn5tU4AfOyOS2w="; fetchSubmodules = false; }; - llvmSrc = lib.throwIfNot (libllvm.version == version) - "ocaml-llvm: versions must match (got: ${libllvm.version}, ${version})" - libllvm.src; + llvmSrc = libllvm.src; srcs = [ duneSrc llvmSrc ]; sourceRoot = "source"; - buildInputs = [ zlib libxml2 ctypes ncurses ]; + buildInputs = [ zlib libxml2 ncurses ]; + propagatedBuildInputs = [ ctypes ctypes-foreign ]; prePatch = '' rm -rf llvm-project @@ -41,8 +42,8 @@ in buildDunePackage rec { runHook preConfigure substituteInPlace setup.sh \ - --replace "cp " "cp --no-preserve=mode,ownership " \ - --replace support_static_mode=true support_static_mode=false + --replace "cp " "cp --no-preserve=mode,ownership " + # --replace support_static_mode=true support_static_mode=false ./setup.sh ${libllvm.dev}/bin/llvm-config diff --git a/overlay.nix b/overlay.nix index 3ffac0e..27a9c1d 100644 --- a/overlay.nix +++ b/overlay.nix @@ -6,17 +6,18 @@ let update = prev.callPackage ./update.nix { }; - ocamlPackages_pac = final.ocaml-ng.ocamlPackages_4_14.overrideScope final.overlay_ocamlPackages + ocamlPackages_pac = final.ocamlPackages.overrideScope final.overlay_ocamlPackages // { _overlay = final.overlay_ocamlPackages; }; - # ocamlPackages_pac_4_09 = final.ocaml-ng.ocamlPackages_4_09.overrideScope final.overlay_ocamlPackages + # ocamlPackages_pac = final.ocaml-ng.ocamlPackages_4_14.overrideScope final.overlay_ocamlPackages # // { _overlay = final.overlay_ocamlPackages; }; # llvm-translator packages overlay_ocamlPackages = ofinal: oprev: { - llvm = ofinal.callPackage ./llvm-translator/ocaml-llvm.nix { llvmPackages = final.llvmPackages_14; }; - asl-translator = ofinal.callPackage ./llvm-translator/asl-translator.nix { }; + ocaml-llvm-14 = ofinal.callPackage ./llvm-translator/ocaml-llvm.nix { libllvm = final.llvmPackages_14.libllvm; }; + asl-translator = ofinal.callPackage ./llvm-translator/asl-translator.nix { llvm = ofinal.ocaml-llvm-14; }; }; inherit (final.ocamlPackages_pac) asl-translator; + retdec5 = prev.callPackage ./llvm-translator/retdec5.nix { }; retdec-uq-pac = prev.callPackage ./llvm-translator/retdec-uq-pac.nix { retdec = final.retdec5; }; From b5f3a258414bb0756830fb4f92faeda7640f32a0 Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 6 Jun 2024 12:14:53 +1000 Subject: [PATCH 4/8] asl-translator: pin to ocaml 4.14 --- overlay.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/overlay.nix b/overlay.nix index 27a9c1d..3f6c1eb 100644 --- a/overlay.nix +++ b/overlay.nix @@ -8,15 +8,15 @@ let ocamlPackages_pac = final.ocamlPackages.overrideScope final.overlay_ocamlPackages // { _overlay = final.overlay_ocamlPackages; }; - # ocamlPackages_pac = final.ocaml-ng.ocamlPackages_4_14.overrideScope final.overlay_ocamlPackages - # // { _overlay = final.overlay_ocamlPackages; }; + ocamlPackages_pac_4_14 = final.ocaml-ng.ocamlPackages_4_14.overrideScope final.overlay_ocamlPackages + // { _overlay = final.overlay_ocamlPackages; }; # llvm-translator packages overlay_ocamlPackages = ofinal: oprev: { ocaml-llvm-14 = ofinal.callPackage ./llvm-translator/ocaml-llvm.nix { libllvm = final.llvmPackages_14.libllvm; }; asl-translator = ofinal.callPackage ./llvm-translator/asl-translator.nix { llvm = ofinal.ocaml-llvm-14; }; }; - inherit (final.ocamlPackages_pac) asl-translator; + inherit (final.ocamlPackages_pac_4_14) asl-translator; retdec5 = prev.callPackage ./llvm-translator/retdec5.nix { }; retdec-uq-pac = prev.callPackage ./llvm-translator/retdec-uq-pac.nix { retdec = final.retdec5; }; From ecc029ad059e0a80efad2807248d18c12db09df1 Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 6 Jun 2024 14:08:56 +1000 Subject: [PATCH 5/8] remill, xed: fix compatibility --- llvm-translator/remill.nix | 9 ++++----- overlay.nix | 11 ++++++++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/llvm-translator/remill.nix b/llvm-translator/remill.nix index e5b4bce..075472f 100644 --- a/llvm-translator/remill.nix +++ b/llvm-translator/remill.nix @@ -40,14 +40,13 @@ in stdenv.mkDerivation (self: { pname = "remill"; - version = "unstable-2023-09-27"; + version = "unstable-2024-05-12"; src = fetchFromGitHub { owner = "lifting-bits"; repo = "remill"; - # sparc working but llvm 17: 391261923a036196ad9dd2c8213c0193ad727cd9 - rev = "7182636a687e5e005e3336108a653de3aec0362b"; - hash = "sha256-4oeHmgkXJlBsLyK359XbfI4Xfq/hRcxqaIA2hsK2piI="; + rev = "1c9b5a0b26fbfe6c1e78426bbce7003763f27d9e"; + hash = "sha256-OkagldvILOvKehldBlJkRRo7c1AcT3IeeSfrUHOi78g="; }; GIT_RETRIEVED_STATE = true; @@ -136,7 +135,7 @@ stdenv.mkDerivation (self: "-DDVCPKG_TARGET_TRIPLET=x64-linux-rel" "-DGIT_EXECUTABLE=${git-am-shim}" # "-DFETCHCONTENT_QUIET=OFF" - "-DREMILL_BUILD_SPARC32_RUNTIME=False" + # "-DREMILL_BUILD_SPARC32_RUNTIME=False" ]; }) diff --git a/overlay.nix b/overlay.nix index 3f6c1eb..a60ca93 100644 --- a/overlay.nix +++ b/overlay.nix @@ -31,7 +31,16 @@ let llvmPackages = final.llvm-custom-git; }; alive2-aslp = prev.callPackage ./llvm-translator/alive2-aslp.nix { }; - remill = prev.callPackage ./llvm-translator/remill.nix { }; + xed2022 = prev.xed.overrideAttrs rec { + version = "2022.08.11"; + src = prev.fetchFromGitHub { + owner = "intelxed"; + repo = "xed"; + rev = "v${version}"; + sha256 = "sha256-Iil+dfjuWYPbzmSjgwKTKScSE/IsWuHEKQ5HsBJDqWM="; + }; + }; + remill = prev.callPackage ./llvm-translator/remill.nix { xed = final.xed2022; }; sleigh = prev.callPackage ./llvm-translator/sleigh.nix { }; _overlay = overlay; From 2c45523a11489bb6cea6a80d9978e12798fcc6d2 Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 27 Jun 2024 17:58:22 +1000 Subject: [PATCH 6/8] bap, bap-aslp, bap-asli-plugin: use ocaml 4.14 --- overlay.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/overlay.nix b/overlay.nix index a60ca93..8a8edc9 100644 --- a/overlay.nix +++ b/overlay.nix @@ -6,9 +6,9 @@ let update = prev.callPackage ./update.nix { }; - ocamlPackages_pac = final.ocamlPackages.overrideScope final.overlay_ocamlPackages - // { _overlay = final.overlay_ocamlPackages; }; - ocamlPackages_pac_4_14 = final.ocaml-ng.ocamlPackages_4_14.overrideScope final.overlay_ocamlPackages + # ocamlPackages_pac = final.ocamlPackages.overrideScope final.overlay_ocamlPackages + # // { _overlay = final.overlay_ocamlPackages; }; + ocamlPackages_pac = final.ocaml-ng.ocamlPackages_4_14.overrideScope final.overlay_ocamlPackages // { _overlay = final.overlay_ocamlPackages; }; # llvm-translator packages @@ -16,7 +16,7 @@ let ocaml-llvm-14 = ofinal.callPackage ./llvm-translator/ocaml-llvm.nix { libllvm = final.llvmPackages_14.libllvm; }; asl-translator = ofinal.callPackage ./llvm-translator/asl-translator.nix { llvm = ofinal.ocaml-llvm-14; }; }; - inherit (final.ocamlPackages_pac_4_14) asl-translator; + inherit (final.ocamlPackages_pac) asl-translator; retdec5 = prev.callPackage ./llvm-translator/retdec5.nix { }; retdec-uq-pac = prev.callPackage ./llvm-translator/retdec-uq-pac.nix { retdec = final.retdec5; }; From f2fdd9dc0028a1fc3b561db3e648a3a852c5a13c Mon Sep 17 00:00:00 2001 From: rina Date: Thu, 27 Jun 2024 22:14:00 +1000 Subject: [PATCH 7/8] bap-asli-plugin: dontDectOcamlConflicts conflict is only in ppxlib --- bap/bap-asli-plugin.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/bap/bap-asli-plugin.nix b/bap/bap-asli-plugin.nix index 196d3f0..ced66c5 100644 --- a/bap/bap-asli-plugin.nix +++ b/bap/bap-asli-plugin.nix @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { }; buildInputs = [ asli bap findlib ]; + dontDetectOcamlConflicts = true; buildPhase = '' runHook preBuild From d005c315ed6dc28c4dd65727325fb90d8103b451 Mon Sep 17 00:00:00 2001 From: rina Date: Mon, 1 Jul 2024 15:48:40 +1000 Subject: [PATCH 8/8] llvm-custom: use llvmPackages_18 should fix alive2-regehr and alive2-aslp --- overlay.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/overlay.nix b/overlay.nix index 8a8edc9..a073b44 100644 --- a/overlay.nix +++ b/overlay.nix @@ -22,7 +22,7 @@ let retdec-uq-pac = prev.callPackage ./llvm-translator/retdec-uq-pac.nix { retdec = final.retdec5; }; llvm-custom-15 = prev.callPackage ./llvm-translator/llvm-custom.nix { llvmPackages = final.llvmPackages_15; }; - llvm-custom-git = prev.callPackage ./llvm-translator/llvm-custom.nix { llvmPackages = final.llvmPackages_git; }; + llvm-custom-git = prev.callPackage ./llvm-translator/llvm-custom.nix { llvmPackages = final.llvmPackages_18; }; alive2 = prev.callPackage ./llvm-translator/alive2.nix { llvmPackages = final.llvm-custom-15;