add valgrind
Some checks failed
Hydra kubo Hydra build #53727 of nix-packages:riscv64-linux-master-pr276:kubo
Hydra emoji-volpeon-bunhd-flip Hydra build #53729 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-bunhd-flip
Hydra emoji-volpeon-raccoon Hydra build #53728 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-raccoon
Hydra mautrix-discord Hydra build #53730 of nix-packages:riscv64-linux-master-pr276:mautrix-discord
Hydra nasin-nanpa Hydra build #53733 of nix-packages:riscv64-linux-master-pr276:nasin-nanpa
Hydra mautrix-whatsapp Hydra build #53734 of nix-packages:riscv64-linux-master-pr276:mautrix-whatsapp
Hydra woodpecker-agent Hydra build #53731 of nix-packages:riscv64-linux-master-pr276:woodpecker-agent
Hydra woodpecker-cli Hydra build #53737 of nix-packages:riscv64-linux-master-pr276:woodpecker-cli
Hydra element-web Hydra build #53643 of nix-packages:riscv64-linux-master-pr276:element-web
Hydra python-instagram Hydra build #53848 of nix-packages:riscv64-linux-master-pr276:python-instagram
Hydra vf2Kernel Hydra build #53736 of nix-packages:riscv64-linux-master-pr276:vf2Kernel
Hydra woodpecker-frontend Hydra build #53744 of nix-packages:riscv64-linux-master-pr276:woodpecker-frontend
Hydra woodpecker-server Hydra build #53868 of nix-packages:riscv64-linux-master-pr276:woodpecker-server
Hydra emoji-volpeon-fox Hydra build #53741 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-fox
Hydra python-tulir-telethon Hydra build #53753 of nix-packages:riscv64-linux-master-pr276:python-tulir-telethon
Hydra pleroma-fe Hydra build #53748 of nix-packages:riscv64-linux-master-pr276:pleroma-fe
Hydra emoji-volpeon-vlpn Hydra build #53754 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-vlpn
Hydra emoji-volpeon-blobfox-flip Hydra build #53755 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-blobfox-flip
Hydra emoji-volpeon-drgn Hydra build #53758 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-drgn
Hydra admin-fe Hydra build #53757 of nix-packages:riscv64-linux-master-pr276:admin-fe
Hydra emoji-volpeon-gphn Hydra build #53759 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-gphn
Some checks failed
Hydra kubo Hydra build #53727 of nix-packages:riscv64-linux-master-pr276:kubo
Hydra emoji-volpeon-bunhd-flip Hydra build #53729 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-bunhd-flip
Hydra emoji-volpeon-raccoon Hydra build #53728 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-raccoon
Hydra mautrix-discord Hydra build #53730 of nix-packages:riscv64-linux-master-pr276:mautrix-discord
Hydra nasin-nanpa Hydra build #53733 of nix-packages:riscv64-linux-master-pr276:nasin-nanpa
Hydra mautrix-whatsapp Hydra build #53734 of nix-packages:riscv64-linux-master-pr276:mautrix-whatsapp
Hydra woodpecker-agent Hydra build #53731 of nix-packages:riscv64-linux-master-pr276:woodpecker-agent
Hydra woodpecker-cli Hydra build #53737 of nix-packages:riscv64-linux-master-pr276:woodpecker-cli
Hydra element-web Hydra build #53643 of nix-packages:riscv64-linux-master-pr276:element-web
Hydra python-instagram Hydra build #53848 of nix-packages:riscv64-linux-master-pr276:python-instagram
Hydra vf2Kernel Hydra build #53736 of nix-packages:riscv64-linux-master-pr276:vf2Kernel
Hydra woodpecker-frontend Hydra build #53744 of nix-packages:riscv64-linux-master-pr276:woodpecker-frontend
Hydra woodpecker-server Hydra build #53868 of nix-packages:riscv64-linux-master-pr276:woodpecker-server
Hydra emoji-volpeon-fox Hydra build #53741 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-fox
Hydra python-tulir-telethon Hydra build #53753 of nix-packages:riscv64-linux-master-pr276:python-tulir-telethon
Hydra pleroma-fe Hydra build #53748 of nix-packages:riscv64-linux-master-pr276:pleroma-fe
Hydra emoji-volpeon-vlpn Hydra build #53754 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-vlpn
Hydra emoji-volpeon-blobfox-flip Hydra build #53755 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-blobfox-flip
Hydra emoji-volpeon-drgn Hydra build #53758 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-drgn
Hydra admin-fe Hydra build #53757 of nix-packages:riscv64-linux-master-pr276:admin-fe
Hydra emoji-volpeon-gphn Hydra build #53759 of nix-packages:riscv64-linux-master-pr276:emoji-volpeon-gphn
This commit is contained in:
parent
417b5bb137
commit
9ab71fe96b
5 changed files with 129 additions and 2 deletions
|
@ -77,7 +77,7 @@ in
|
||||||
// (
|
// (
|
||||||
if pkgs.system == "riscv64-linux"
|
if pkgs.system == "riscv64-linux"
|
||||||
then {
|
then {
|
||||||
inherit (pkgsWithOverlay) vf2Kernel;
|
inherit (pkgsWithOverlay) vf2Kernel valgrind;
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
)
|
)
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
// (
|
// (
|
||||||
if system == "riscv64-linux"
|
if system == "riscv64-linux"
|
||||||
then {
|
then {
|
||||||
inherit (pkgs) vf2Kernel;
|
inherit (pkgs) vf2Kernel valgrind;
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
)
|
)
|
||||||
|
|
|
@ -42,6 +42,7 @@ system: self: super: let
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
doInstallCheck = false;
|
doInstallCheck = false;
|
||||||
});
|
});
|
||||||
|
valgrind = self.callPackage ./riscv/valgrind {};
|
||||||
})
|
})
|
||||||
else (_: _: {});
|
else (_: _: {});
|
||||||
|
|
||||||
|
|
115
riscv/valgrind/default.nix
Normal file
115
riscv/valgrind/default.nix
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
perl,
|
||||||
|
gdb,
|
||||||
|
cctools,
|
||||||
|
xnu,
|
||||||
|
bootstrap_cmds,
|
||||||
|
autoreconfHook,
|
||||||
|
}: let
|
||||||
|
source = builtins.fromJSON (builtins.readFile ./source.json);
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "valgrind-riscv64";
|
||||||
|
version = source.date;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "petrpavlu";
|
||||||
|
repo = "valgrind-riscv64";
|
||||||
|
inherit (source) rev sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = ["out" "dev"];
|
||||||
|
|
||||||
|
hardeningDisable = ["stackprotector"];
|
||||||
|
|
||||||
|
# GDB is needed to provide a sane default for `--db-command'.
|
||||||
|
# Perl is needed for `callgrind_{annotate,control}'.
|
||||||
|
buildInputs = [gdb perl] ++ lib.optionals (stdenv.isDarwin) [bootstrap_cmds xnu];
|
||||||
|
|
||||||
|
# Perl is also a native build input.
|
||||||
|
nativeBuildInputs = [autoreconfHook perl];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
separateDebugInfo = stdenv.isLinux;
|
||||||
|
|
||||||
|
preConfigure = lib.optionalString stdenv.isDarwin (
|
||||||
|
let
|
||||||
|
OSRELEASE = ''
|
||||||
|
$(awk -F '"' '/#define OSRELEASE/{ print $2 }' \
|
||||||
|
<${xnu}/Library/Frameworks/Kernel.framework/Headers/libkern/version.h)'';
|
||||||
|
in ''
|
||||||
|
echo "Don't derive our xnu version using uname -r."
|
||||||
|
substituteInPlace configure --replace "uname -r" "echo ${OSRELEASE}"
|
||||||
|
|
||||||
|
# Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
|
||||||
|
echo "getting rid of the \`-arch' GCC option..."
|
||||||
|
find -name Makefile\* -exec \
|
||||||
|
sed -i {} -e's/DARWIN\(.*\)-arch [^ ]\+/DARWIN\1/g' \;
|
||||||
|
|
||||||
|
sed -i coregrind/link_tool_exe_darwin.in \
|
||||||
|
-e 's/^my \$archstr = .*/my $archstr = "x86_64";/g'
|
||||||
|
|
||||||
|
substituteInPlace coregrind/m_debuginfo/readmacho.c \
|
||||||
|
--replace /usr/bin/dsymutil ${stdenv.cc.bintools.bintools}/bin/dsymutil
|
||||||
|
|
||||||
|
echo "substitute hardcoded /usr/bin/ld with ${cctools}/bin/ld"
|
||||||
|
substituteInPlace coregrind/link_tool_exe_darwin.in \
|
||||||
|
--replace /usr/bin/ld ${cctools}/bin/ld
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
# To prevent rebuild on linux when moving darwin's postPatch fixes to preConfigure
|
||||||
|
postPatch = "";
|
||||||
|
|
||||||
|
configureFlags =
|
||||||
|
lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit"
|
||||||
|
++ lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include";
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
for i in $out/libexec/valgrind/*.supp; do
|
||||||
|
substituteInPlace $i \
|
||||||
|
--replace 'obj:/lib' 'obj:*/lib' \
|
||||||
|
--replace 'obj:/usr/X11R6/lib' 'obj:*/lib' \
|
||||||
|
--replace 'obj:/usr/lib' 'obj:*/lib'
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = [
|
||||||
|
../../scripts/update-git.sh
|
||||||
|
"https://github.com/petrpavlu/valgrind-riscv64"
|
||||||
|
"riscv/valgrind/source.json"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.valgrind.org/";
|
||||||
|
description = "Debugging and profiling tool suite";
|
||||||
|
|
||||||
|
longDescription = ''
|
||||||
|
Valgrind is an award-winning instrumentation framework for
|
||||||
|
building dynamic analysis tools. There are Valgrind tools that
|
||||||
|
can automatically detect many memory management and threading
|
||||||
|
bugs, and profile your programs in detail. You can also use
|
||||||
|
Valgrind to build new tools.
|
||||||
|
'';
|
||||||
|
|
||||||
|
license = lib.licenses.gpl2Plus;
|
||||||
|
|
||||||
|
maintainers = [lib.maintainers.nickcao];
|
||||||
|
platforms = lib.platforms.unix;
|
||||||
|
badPlatforms = [
|
||||||
|
"armv5tel-linux"
|
||||||
|
"armv6l-linux"
|
||||||
|
"armv6m-linux"
|
||||||
|
"sparc-linux"
|
||||||
|
"sparc64-linux"
|
||||||
|
"riscv32-linux"
|
||||||
|
"alpha-linux"
|
||||||
|
];
|
||||||
|
broken = stdenv.isDarwin || stdenv.hostPlatform.isStatic; # https://hydra.nixos.org/build/128521440/nixlog/2
|
||||||
|
};
|
||||||
|
}
|
11
riscv/valgrind/source.json
Normal file
11
riscv/valgrind/source.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"url": "https://github.com/petrpavlu/valgrind-riscv64",
|
||||||
|
"rev": "71272b252977fe52f03ea4fa8306b457b098cca5",
|
||||||
|
"date": "2023-04-10T20:43:50+02:00",
|
||||||
|
"path": "/nix/store/g00qg2qhm10c0a6v5v7al89pc57b4bjy-valgrind-riscv64",
|
||||||
|
"sha256": "0znk98hypdh7j84h237131aqsczz91mrwpwkvy1xgaxkhiskhgy4",
|
||||||
|
"fetchLFS": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"deepClone": false,
|
||||||
|
"leaveDotGit": false
|
||||||
|
}
|
Reference in a new issue