forked from rarias/nixos-riscv
Add SPEC CPU 2017 benchmarks
This commit is contained in:
106
pkgs/spec-cpu/tools.nix
Normal file
106
pkgs/spec-cpu/tools.nix
Normal file
@@ -0,0 +1,106 @@
|
||||
{
|
||||
stdenv
|
||||
, libarchive
|
||||
, xz
|
||||
, gnutar
|
||||
, gfortran
|
||||
, coreutils
|
||||
, requireFile
|
||||
, autoPatchelfHook
|
||||
, libxcrypt-legacy
|
||||
, glibc
|
||||
, lib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "spec-cpu-tools";
|
||||
version = "1.1.7";
|
||||
|
||||
src = requireFile {
|
||||
name = "cpu2017-1.1.7.iso";
|
||||
sha256 = "02630819h64dyy57wkj33fhwwqgbw6mqc5awh1zm48pkvvl0l600";
|
||||
message = ''
|
||||
Missing SPEC CPU 2017 1.1.7.
|
||||
|
||||
Add it to the store with:
|
||||
|
||||
$ nix-prefetch-url file:/path/to/cpu2017-1.1.7.iso
|
||||
/nix/store/mk4hr8xwd62akp7iw5khq638ssba8qz0-cpu2017-1.1.7.iso
|
||||
|
||||
Notice that the name must match exactly "cpu2017-1.1.7.iso".
|
||||
'';
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
set -x
|
||||
mkdir iso
|
||||
bsdtar -C iso -xf $src
|
||||
chmod +w -R iso
|
||||
|
||||
#for f in iso/install_archives/benchball/*; do
|
||||
# bsdtar -xf $f
|
||||
#done
|
||||
#mkdir src
|
||||
#bsdtar -C src -xf iso/install_archives/benchball/cpu2017-1.1.7.base.tar.xz
|
||||
#bsdtar -C src -xf iso/install_archives/benchball/519.lbm_r-1.000503.tar.xz
|
||||
|
||||
sourceRoot="$PWD/iso"
|
||||
set +x
|
||||
'';
|
||||
|
||||
# We need a working specxz binary
|
||||
configurePhase = ''
|
||||
patchShebangs install.sh
|
||||
|
||||
set -x
|
||||
|
||||
# Replace "spec*" tools by symlinks to working binaries
|
||||
pushd tools/bin/linux-x86_64
|
||||
ln -fs ${xz}/bin/xz specxz
|
||||
ln -fs ${gnutar}/bin/tar spectar
|
||||
patchelf \
|
||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
specsha512sum
|
||||
ls -l spec*
|
||||
./specxz -h
|
||||
./spectar --help
|
||||
ldd ./specsha512sum
|
||||
./specsha512sum --help
|
||||
popd
|
||||
|
||||
# sha512sum requires -e, not provided by coreutils
|
||||
|
||||
export SPEC="$sourceRoot"
|
||||
|
||||
# Don't run the tests
|
||||
sed -i 's/^.*shrc will.*$/exit 0/g' install.sh
|
||||
|
||||
set +x
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
bash -x install.sh -f -d $out -u linux-x86_64
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
# Fix temporary directory creation
|
||||
sed -i '/^sub get_tmp_directory/a\ return tempdir(CLEANUP => 1);' \
|
||||
$out/bin/common/util_common.pl
|
||||
|
||||
sed -i '/my $dir = jp($top, $config->resultdir, $subdir);/c\ my $dir = ::get_tmp_directory($config, 1);' \
|
||||
$out/bin/harness/log.pl
|
||||
'';
|
||||
|
||||
# Missing libdb-4.7.so
|
||||
autoPatchelfIgnoreMissingDeps = true;
|
||||
|
||||
nativeBuildInputs = [ libxcrypt-legacy libarchive autoPatchelfHook ];
|
||||
#buildInputs = [ libxcrypt-legacy ];
|
||||
|
||||
enableParallelBuilding = false;
|
||||
hardeningDisable = [ "all" ];
|
||||
dontStrip = true;
|
||||
meta.broken = (stdenv.buildPlatform.config != "x86_64-unknown-linux-gnu") ||
|
||||
(stdenv.hostPlatform.config != "x86_64-unknown-linux-gnu") ||
|
||||
(stdenv.targetPlatform.config != "riscv64-unknown-linux-gnu");
|
||||
}
|
||||
Reference in New Issue
Block a user