aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header/default.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header/default.nix b/infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header/default.nix
new file mode 100644
index 000000000000..c1764e83c303
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/libraries/elf-header/default.nix
@@ -0,0 +1,44 @@
+{ stdenvNoCC, lib, glibc, musl }:
+
+let
+ libc =
+ if stdenvNoCC.targetPlatform.isMusl
+ then musl
+ else glibc;
+ headerPath =
+ if stdenvNoCC.targetPlatform.isMusl
+ then "musl-${libc.version}/include/elf.h"
+ else "glibc-${libc.version}/elf/elf.h";
+in
+
+stdenvNoCC.mkDerivation {
+ pname = "elf-header";
+ inherit (libc) version;
+
+ src = null;
+
+ dontUnpack = true;
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p "$out/include";
+ tar -xf \
+ ${lib.escapeShellArg libc.src} \
+ ${lib.escapeShellArg headerPath} \
+ --to-stdout \
+ | sed -e '/features\.h/d' \
+ > "$out/include/elf.h"
+ '';
+
+ meta = libc.meta // {
+ outputsToInstall = [ "out" ];
+ description = "The datastructures of ELF according to the target platform's libc";
+ longDescription = ''
+ The Executable and Linkable Format (ELF, formerly named Extensible Linking
+ Format), is usually defined in a header like this.
+ '';
+ platforms = lib.platforms.all;
+ maintainers = [ lib.maintainers.ericson2314 ];
+ };
+}