mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-12 07:54:50 +00:00
b8ce6a31f5
A little shim derivation to get this header for Darwin, where it is needed for cross compilation. There's no real reason to do glibc and musl like that, but as I'm maintaining it I suppose I can go overboard like that.
44 lines
1017 B
Nix
44 lines
1017 B
Nix
{ 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 {
|
|
name = "elf-header";
|
|
inherit (libc) version;
|
|
|
|
src = null;
|
|
|
|
unpackPhase = "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 // {
|
|
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 ];
|
|
};
|
|
}
|