Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hal-hardware-analyzer: 4.2.0 -> 4.4.1 #353436

Merged
merged 1 commit into from
Nov 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
compatibility with newer spdlog/fmt versions

diff --git a/plugins/module_identification/src/api/module_identification.cpp b/plugins/module_identification/src/api/module_identification.cpp
index 808875e8a68..3cf3cf1fb8b 100644
--- a/plugins/module_identification/src/api/module_identification.cpp
+++ b/plugins/module_identification/src/api/module_identification.cpp
@@ -406,7 +406,7 @@ namespace hal

const u32 num_threads = std::min(config.m_max_thread_count, std::thread::hardware_concurrency() - 1);

- log_info("module_identification", "running with {} threads and {} multithreading priority", num_threads, config.m_multithreading_priority);
+ log_info("module_identification", "running with {} threads and {} multithreading priority", num_threads, fmt::underlying(config.m_multithreading_priority));

auto stats = Statistics();

diff --git a/plugins/z3_utils/src/simplification.cpp b/plugins/z3_utils/src/simplification.cpp
index d64cab665f2..561fa7f1a23 100644
--- a/plugins/z3_utils/src/simplification.cpp
+++ b/plugins/z3_utils/src/simplification.cpp
@@ -617,7 +617,7 @@ namespace hal
return false;

default: {
- log_error("z3_utils", "commutative check not implemeted for type {}!", t);
+ log_error("z3_utils", "commutative check not implemeted for type {}!", fmt::underlying(t));
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,82 +8,44 @@
, igraph
, llvmPackages
, ninja
, nlohmann_json
, pkg-config
, python3Packages
, qtbase
, qtsvg
, quazip
, rapidjson
, spdlog
, suitesparse
, verilator
, wrapQtAppsHook
, z3
}:

let
# hal doesn't work with igraph 0.10.x yet https://github.com/emsec/hal/pull/487
igraph' = igraph.overrideAttrs (final: prev: {
version = "0.9.10";
src = fetchFromGitHub {
owner = "igraph";
repo = final.pname;
rev = final.version;
hash = "sha256-prDadHsNhDRkNp1i0niKIYxE0g85Zs0ngvUy6uK8evk=";
};
patches = (prev.patches or []) ++ [
# needed by clang
(fetchpatch {
name = "libxml2-2.11-compat.patch";
url = "https://github.com/igraph/igraph/commit/5ad464be5ae2f6ebb69c97cb0140c800cc8d97d6.patch";
hash = "sha256-adU5SctH+H54UaAmr5BZInytD3wjUzLtQbCwngAWs4o=";
})
];
postPatch = prev.postPatch + lib.optionalString stdenv.hostPlatform.isAarch64 ''
# https://github.com/igraph/igraph/issues/1694
substituteInPlace tests/CMakeLists.txt \
--replace "igraph_scg_grouping3" "" \
--replace "igraph_scg_semiprojectors2" ""
'';
NIX_CFLAGS_COMPILE = (prev.NIX_CFLAGS_COMPILE or []) ++ lib.optionals stdenv.cc.isClang [
"-Wno-strict-prototypes"
"-Wno-unused-but-set-parameter"
"-Wno-unused-but-set-variable"
];
# general options brought back from the old 0.9.x package
buildInputs = prev.buildInputs ++ [ suitesparse ];
cmakeFlags = prev.cmakeFlags ++ [ "-DIGRAPH_USE_INTERNAL_CXSPARSE=OFF" ];
});

in stdenv.mkDerivation rec {
version = "4.2.0";
stdenv.mkDerivation rec {
version = "4.4.1";
pname = "hal-hardware-analyzer";

src = fetchFromGitHub {
owner = "emsec";
repo = "hal";
rev = "v${version}";
sha256 = "sha256-Yl86AClE3vWygqj1omCOXX8koJK2SjTkMZFReRThez0=";
sha256 = "sha256-8kmYeqsmqR7tY044rZb3KuEAVGv37IObX6k1qjXWG0A=";
};

patches = [
(fetchpatch {
name = "cmake-add-no-vendored-options.patch";
# https://github.com/emsec/hal/pull/529
url = "https://github.com/emsec/hal/commit/37d5c1a0eacb25de57cc552c13e74f559a5aa6e8.patch";
hash = "sha256-a30VjDt4roJOTntisixqnH17wwCgWc4VWeh1+RgqFuY=";
})
(fetchpatch {
name = "hal-fix-fmt-10.1-compat.patch";
# https://github.com/emsec/hal/pull/530
url = "https://github.com/emsec/hal/commit/b639a56b303141afbf6731b70b7cc7452551f024.patch";
hash = "sha256-a7AyDEKkqdbiHpa4OHTRuP9Yewb3Nxs/j6bwez5m0yU=";
name = "de-vendor-nlohmann-json.patch";
# https://github.com/emsec/hal/pull/596
url = "https://github.com/emsec/hal/commit/f8337d554d80cfa2588512696696fd4c878dd7a3.patch";
hash = "sha256-QjgvcduwbFccC807JFOevlTfO3KiL9T3HSqYmh3sXAQ=";
})
(fetchpatch {
name = "fix-gcc-13-build.patch";
# https://github.com/emsec/hal/pull/557
url = "https://github.com/emsec/hal/commit/831b1a7866aa9aabd55ff288c084862dc6a138d8.patch";
hash = "sha256-kB/sJJtLGl5PUv+mmWVpee/okkJzp5HF0BCiCRCcTKw=";
name = "fix-vendored-igraph-regression.patch";
# https://github.com/emsec/hal/pull/596
url = "https://github.com/emsec/hal/commit/fe1fe74719ab4fef873a22e2b28cce0c57d570e0.patch";
hash = "sha256-bjbW4pr04pP0TCuSdzPcV8h6LbLWMvdGSf61RL9Ju6E=";
})
./4.4.1-newer-spdlog-fmt-compat.patch
];

# make sure bundled dependencies don't get in the way - install also otherwise
Expand All @@ -105,9 +67,11 @@ in stdenv.mkDerivation rec {
qtsvg
boost
rapidjson
igraph'
igraph
nlohmann_json
spdlog
graphviz
verilator
z3
quazip
]
Expand All @@ -129,12 +93,16 @@ in stdenv.mkDerivation rec {
"-DUSE_VENDORED_SPDLOG=off"
"-DUSE_VENDORED_QUAZIP=off"
"-DUSE_VENDORED_IGRAPH=off"
"-DUSE_VENDORED_NLOHMANN_JSON=off"
"-DBUILD_ALL_PLUGINS=on"
];
# needed for macos build - this is why we use wrapQtAppsHook instead of
# the qt mkDerivation - the latter forcibly overrides this.
cmakeBuildType = "MinSizeRel";

# https://github.com/emsec/hal/issues/598
NIX_CFLAGS_COMPILE = lib.optional stdenv.hostPlatform.isAarch64 "-flax-vector-conversions";

# some plugins depend on other plugins and need to be able to load them
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
find $out/lib/hal_plugins -name '*.so*' | while read -r f ; do
Expand Down