mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 18:03:04 +00:00
ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
42 lines
1.3 KiB
Nix
42 lines
1.3 KiB
Nix
{ glibc, perl }:
|
|
|
|
# Small wrapper which only exposes `mtrace(3)` from `glibc`. This can't be placed
|
|
# into `glibc` itself because it depends on Perl which would mean that the final
|
|
# `glibc` inside a stdenv bootstrap has a dependency `glibc -> perl -> bootstrap tools`,
|
|
# so this is now in its own package that isn't used for bootstrapping.
|
|
#
|
|
# `glibc` needs to be overridden here because it's still needed to `./configure` the source in order
|
|
# to have a build environment where we can call the needed make target.
|
|
|
|
glibc.overrideAttrs (oldAttrs: {
|
|
pname = "glibc-mtrace";
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
mkdir malloc
|
|
make -C ../glibc-${glibc.minorRelease}/malloc objdir=`pwd` `pwd`/malloc/mtrace;
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
mv malloc/mtrace $out/bin/
|
|
'';
|
|
|
|
# Perl checked during configure
|
|
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ perl ];
|
|
# Perl shebang used for `mtrace`.
|
|
buildInputs = oldAttrs.buildInputs ++ [ perl ];
|
|
|
|
# Reset a few things declared by `pkgs.glibc`.
|
|
outputs = [ "out" ];
|
|
separateDebugInfo = false;
|
|
|
|
meta = oldAttrs.meta // {
|
|
description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3).";
|
|
mainProgram = "mtrace";
|
|
};
|
|
})
|