Merge pull request #125753 from zhaofengli/riscv-libunwind

Use LLVM's libunwind on RISC-V
This commit is contained in:
Jörg Thalheim 2021-06-05 10:04:07 +02:00 committed by GitHub
commit 8bbe96ed8f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 9 deletions

View file

@ -38,8 +38,7 @@ stdenv.mkDerivation rec {
description = "A portable and efficient API to determine the call-chain of a program";
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
badPlatforms = [ "riscv32-linux" "riscv64-linux" ];
license = licenses.mit;
};
passthru.supportsHost = !stdenv.hostPlatform.isRiscV;
}

View file

@ -1,9 +1,5 @@
{ lib, stdenv, fetchurl, perl, libunwind, buildPackages }:
# libunwind does not have the supportsHost attribute on darwin, thus
# when this package is evaluated it causes an evaluation error
assert stdenv.isLinux;
stdenv.mkDerivation rec {
pname = "strace";
version = "5.12";
@ -16,7 +12,9 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ perl ];
buildInputs = [ perl.out ] ++ lib.optional libunwind.supportsHost libunwind; # support -k
# On RISC-V platforms, LLVM's libunwind implementation is unsupported by strace.
# The build will silently fall back and -k will not work on RISC-V.
buildInputs = [ perl.out libunwind ]; # support -k
postPatch = "patchShebangs --host strace-graph";

View file

@ -16823,8 +16823,9 @@ in
libutempter = callPackage ../development/libraries/libutempter { };
libunwind = if stdenv.isDarwin
then darwin.libunwind
libunwind =
if stdenv.isDarwin then darwin.libunwind
else if stdenv.hostPlatform.isRiscV then llvmPackages_latest.libunwind
else callPackage ../development/libraries/libunwind { };
libuv = callPackage ../development/libraries/libuv {