elf-header: Init at <libc version>
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.
This commit is contained in:
parent
2205beaa8c
commit
b8ce6a31f5
43
pkgs/development/libraries/elf-header/default.nix
Normal file
43
pkgs/development/libraries/elf-header/default.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{ 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 ];
|
||||||
|
};
|
||||||
|
}
|
@ -9513,6 +9513,14 @@ with pkgs;
|
|||||||
installLocales = config.glibc.locales or false;
|
installLocales = config.glibc.locales or false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Provided by libc on Operating Systems that use the Extensible Linker Format.
|
||||||
|
elf-header =
|
||||||
|
if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf"
|
||||||
|
then null
|
||||||
|
else elf-header-real;
|
||||||
|
|
||||||
|
elf-header-real = callPackage ../development/libraries/elf-header { };
|
||||||
|
|
||||||
glibc_memusage = callPackage ../development/libraries/glibc {
|
glibc_memusage = callPackage ../development/libraries/glibc {
|
||||||
installLocales = false;
|
installLocales = false;
|
||||||
withGd = true;
|
withGd = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user