summary refs log tree commit diff
path: root/pkgs/tools/misc/bandwidth
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-05-31 09:59:33 +0000
committerAlyssa Ross <hi@alyssa.is>2022-05-31 09:59:57 +0000
commit9ff36293d1e428cd7bf03e8d4b03611b6d361c28 (patch)
tree1ab51a42b868c55b83f6ccdb80371b9888739dd9 /pkgs/tools/misc/bandwidth
parent1c4fcd0d4b0541e674ee56ace1053e23e562cc80 (diff)
parentddc3c396a51918043bb0faa6f676abd9562be62c (diff)
downloadnixpkgs-archive.tar
nixpkgs-archive.tar.gz
nixpkgs-archive.tar.bz2
nixpkgs-archive.tar.lz
nixpkgs-archive.tar.xz
nixpkgs-archive.tar.zst
nixpkgs-archive.zip
Last good Nixpkgs for Weston+nouveau? archive
I came this commit hash to terwiz[m] on IRC, who is trying to figure out
what the last version of Spectrum that worked on their NUC with Nvidia
graphics is.
Diffstat (limited to 'pkgs/tools/misc/bandwidth')
-rw-r--r--pkgs/tools/misc/bandwidth/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
new file mode 100644
index 00000000000..af728e9749a
--- /dev/null
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchurl, nasm }:
+
+let
+  inherit (stdenv.hostPlatform.parsed.cpu) bits;
+  arch = "bandwidth${toString bits}";
+in
+stdenv.mkDerivation rec {
+  pname = "bandwidth";
+  version = "1.11.2";
+
+  src = fetchurl {
+    url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
+    sha256 = "sha256-mjtvQAOH9rv12XszGdD5hIX197er7Uc74WfVaP32TpM=";
+  };
+
+  postPatch = ''
+    sed -i 's,ar ,$(AR) ,g' OOC/Makefile
+    # Remove unnecessary -m32 for 32-bit targets
+    sed -i 's,-m32,,g' OOC/Makefile
+    # Fix wrong comment character
+    sed -i 's,# 32,; 32,g' routines-x86-32bit.asm
+    # Fix missing symbol exports for macOS clang
+    echo global _VectorToVector128 >> routines-x86-64bit.asm
+    echo global _VectorToVector256 >> routines-x86-64bit.asm
+  '';
+
+  nativeBuildInputs = [ nasm ];
+
+  buildFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "ARM_AS=${stdenv.cc.targetPrefix}as"
+    "ARM_CC=$(CC)"
+    "UNAMEPROC=${stdenv.hostPlatform.parsed.cpu.name}"
+    "UNAMEMACHINE=${stdenv.hostPlatform.parsed.cpu.name}"
+    arch
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${arch} $out/bin/bandwidth
+  '';
+
+  meta = with lib; {
+    homepage = "https://zsmith.co/bandwidth.html";
+    description = "Artificial benchmark for identifying weaknesses in the memory subsystem";
+    license = licenses.gpl2Plus;
+    platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
+    maintainers = with maintainers; [ r-burns ];
+  };
+}