mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
pkgs/top-level/stage.nix: add pkgsLLVMLibc
This commit is contained in:
parent
f72b341556
commit
41b14024d2
6 changed files with 24 additions and 0 deletions
|
@ -102,6 +102,7 @@ let
|
||||||
else if final.isMusl then "musl"
|
else if final.isMusl then "musl"
|
||||||
else if final.isUClibc then "uclibc"
|
else if final.isUClibc then "uclibc"
|
||||||
else if final.isAndroid then "bionic"
|
else if final.isAndroid then "bionic"
|
||||||
|
else if final.isLLVMLibc then "llvm"
|
||||||
else if final.isLinux /* default */ then "glibc"
|
else if final.isLinux /* default */ then "glibc"
|
||||||
else if final.isFreeBSD then "fblibc"
|
else if final.isFreeBSD then "fblibc"
|
||||||
else if final.isOpenBSD then "oblibc"
|
else if final.isOpenBSD then "oblibc"
|
||||||
|
|
|
@ -113,6 +113,7 @@ rec {
|
||||||
isGnu = with abis; map (a: { abi = a; }) [ gnuabi64 gnuabin32 gnu gnueabi gnueabihf gnuabielfv1 gnuabielfv2 ];
|
isGnu = with abis; map (a: { abi = a; }) [ gnuabi64 gnuabin32 gnu gnueabi gnueabihf gnuabielfv1 gnuabielfv2 ];
|
||||||
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf muslabin32 muslabi64 ];
|
isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf muslabin32 muslabi64 ];
|
||||||
isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ];
|
isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ];
|
||||||
|
isLLVMLibc = [ { abi = abis.llvm; } ];
|
||||||
|
|
||||||
isEfi = [
|
isEfi = [
|
||||||
{ cpu = { family = "arm"; version = "6"; }; }
|
{ cpu = { family = "arm"; version = "6"; }; }
|
||||||
|
|
|
@ -416,6 +416,9 @@ rec {
|
||||||
uclibceabihf = { float = "hard"; };
|
uclibceabihf = { float = "hard"; };
|
||||||
uclibc = {};
|
uclibc = {};
|
||||||
|
|
||||||
|
# LLVM libc
|
||||||
|
llvm = {};
|
||||||
|
|
||||||
unknown = {};
|
unknown = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,7 @@ let
|
||||||
|
|
||||||
# cross packagesets
|
# cross packagesets
|
||||||
pkgsLLVM = true;
|
pkgsLLVM = true;
|
||||||
|
pkgsLLVMLibc = true;
|
||||||
pkgsMusl = true;
|
pkgsMusl = true;
|
||||||
pkgsStatic = true;
|
pkgsStatic = true;
|
||||||
pkgsCross = true;
|
pkgsCross = true;
|
||||||
|
|
|
@ -341,6 +341,7 @@ let
|
||||||
agdaPackages = packagePlatforms pkgs.agdaPackages;
|
agdaPackages = packagePlatforms pkgs.agdaPackages;
|
||||||
|
|
||||||
pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
pkgsLLVMLibc.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
pkgsArocc.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
pkgsArocc.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
pkgsZig.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
pkgsZig.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
||||||
|
|
|
@ -98,6 +98,10 @@ let
|
||||||
or lib.systems.parse.abis.musl;
|
or lib.systems.parse.abis.musl;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
makeLLVMParsedPlatform = parsed:
|
||||||
|
(parsed // {
|
||||||
|
abi = lib.systems.parse.abis.llvm;
|
||||||
|
});
|
||||||
|
|
||||||
stdenvAdapters = self: super:
|
stdenvAdapters = self: super:
|
||||||
let
|
let
|
||||||
|
@ -207,6 +211,19 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pkgsLLVMLibc = nixpkgsFun {
|
||||||
|
overlays = [ (self': super': {
|
||||||
|
pkgsLLVMLibc = super';
|
||||||
|
})] ++ overlays;
|
||||||
|
# Bootstrap a cross stdenv using LLVM libc.
|
||||||
|
# This is currently not possible when compiling natively,
|
||||||
|
# so we don't need to check hostPlatform != buildPlatform.
|
||||||
|
crossSystem = stdenv.hostPlatform // {
|
||||||
|
config = lib.systems.parse.tripleFromSystem (makeLLVMParsedPlatform stdenv.hostPlatform.parsed);
|
||||||
|
libc = "llvm";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
pkgsArocc = nixpkgsFun {
|
pkgsArocc = nixpkgsFun {
|
||||||
overlays = [
|
overlays = [
|
||||||
(self': super': {
|
(self': super': {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue