Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / elf-header / default.nix
blob72166bb38ce99895fecefd3067f5b39171ba1659
1 { stdenvNoCC, lib, glibc, musl }:
3 let
4    libc =
5      if stdenvNoCC.targetPlatform.isMusl
6      then musl
7      else glibc;
8    headerPath =
9      if stdenvNoCC.targetPlatform.isMusl
10      then "musl-${libc.version}/include/elf.h"
11      else "glibc-${libc.version}/elf/elf.h";
14 stdenvNoCC.mkDerivation {
15   pname = "elf-header";
16   inherit (libc) version;
18   src = null;
20   dontUnpack = true;
22   dontBuild = true;
24   installPhase = ''
25     mkdir -p "$out/include";
26     tar -xf \
27         ${lib.escapeShellArg libc.src} \
28         ${lib.escapeShellArg headerPath} \
29         --to-stdout \
30       | sed -e '/features\.h/d' \
31       > "$out/include/elf.h"
32   '';
34   meta = libc.meta // {
35     outputsToInstall = [ "out" ];
36     description = "The datastructures of ELF according to the target platform's libc";
37     longDescription = ''
38       The Executable and Linkable Format (ELF, formerly named Extensible Linking
39       Format), is usually defined in a header like this.
40     '';
41     platforms = lib.platforms.all;
42     maintainers = [ lib.maintainers.ericson2314 ];
43   };