Avoid building a llvm based bootstrap step
This commit is contained in:
parent
7577fcba1f
commit
17e4c6814c
42
default.nix
42
default.nix
|
@ -1,34 +1,12 @@
|
|||
{
|
||||
nixPkgsVersion ? "f606c027310f06df398875960e04038db1f0129f", # release 23.0 # "3e52e76b70d5508f3cec70b882a29199f4d1ee85", # unstable
|
||||
currentSystem
|
||||
}:
|
||||
let
|
||||
|
||||
getNixPkgs = args: import (builtins.fetchGit {
|
||||
name = "nixpkg-serene-${nixPkgsVersion}";
|
||||
url = "https://github.com/nixos/nixpkgs/";
|
||||
# `git ls-remote https://github.com/nixos/nixpkgs nixos-unstable`
|
||||
ref = "refs/heads/release-23.05"; # refs/heads/nixos-unstable
|
||||
rev = nixPkgsVersion;
|
||||
}) args;
|
||||
|
||||
nixpkgs = getNixPkgs { system = currentSystem; };
|
||||
system = import ./system.nix {
|
||||
pkgs = nixpkgs;
|
||||
inherit currentSystem;
|
||||
tmpPkgs = import ../nixpkgs {};
|
||||
pkgs = import ../nixpkgs {
|
||||
crossSystem = tmpPkgs.stdenv.hostPlatform // {
|
||||
config = "x86_64-unknown-linux-musl";
|
||||
useLLVM = true;
|
||||
linker = "lld";
|
||||
isMusl = true;
|
||||
isStatic = true;
|
||||
};
|
||||
};
|
||||
# staticMuslPkgs = getNixPkgs system;
|
||||
# llvm = staticMuslPkgs.llvmPackages_16.override { stdenv = staticMuslPkgs.llvmPackages_16.libcxxStdenv; };
|
||||
|
||||
replaceStdenv = { pkgs }:
|
||||
let
|
||||
llvm = pkgs.llvmPackages_16.override { stdenv = pkgs.llvmPackages_16.libcxxStdenv; };
|
||||
in
|
||||
llvm.libcxxStdenv;
|
||||
|
||||
createPkgSet = _:
|
||||
getNixPkgs (system // { config = { inherit replaceStdenv; }; });
|
||||
|
||||
in {
|
||||
inherit createPkgSet;
|
||||
}
|
||||
in { inherit pkgs tmpPkgs; }
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"nodes": {
|
||||
"h": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1,
|
||||
"narHash": "sha256-FghzEGAvDzfNDjS4QPKu635KMnCbPAbMLoZBJDVrj9g=",
|
||||
"path": "/nix/store/1qdpdwjgrz119dm0nr7fq4wiwiks8br7-source/test-drv.nix",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"path": "/nix/store/1qdpdwjgrz119dm0nr7fq4wiwiks8br7-source/test-drv.nix",
|
||||
"type": "path"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"dirtyRev": "68ba5fd2ed8be749cf1865ed9a71667dfda944a7-dirty",
|
||||
"dirtyShortRev": "68ba5fd2ed8b-dirty",
|
||||
"lastModified": 1697211831,
|
||||
"narHash": "sha256-baRp/RgDaU3rVlybOpTPzo/+FdsfTyKp3iv4igguHkY=",
|
||||
"type": "git",
|
||||
"url": "file:///home/lxsameer/src/nixpkgs"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "file:///home/lxsameer/src/nixpkgs"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"h": "h",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
31
flake.nix
31
flake.nix
|
@ -1,22 +1,19 @@
|
|||
{
|
||||
description = "Serene Toolchain";
|
||||
description = "Serene Toolchain";
|
||||
|
||||
|
||||
outputs = inputs:
|
||||
let
|
||||
toolchain = import /home/lxsameer/src/toolchain/test-stdenv.nix {};
|
||||
nixpkgs = import /home/lxsameer/src/nixpkgs {};
|
||||
myenv = toolchain.createPkgSet;
|
||||
in
|
||||
{
|
||||
testClang = myenv.stdenv.mkDerivation {
|
||||
name = "testClang";
|
||||
unpackPhase = "echo AA $CC; echo '--'; env; NIX_DEBUG=1 $CC -v; echo '--'; exit 1";
|
||||
};
|
||||
testGcc = nixpkgs.stdenv.mkDerivation {
|
||||
name = "testGcc";
|
||||
unpackPhase = "NIX_DEBUG=1 $CC --version; echo $CC; $CC -v; exit 1";
|
||||
};
|
||||
inherit myenv;
|
||||
inputs.nixpkgs.url = "/home/lxsameer/src/nixpkgs/";
|
||||
inputs.h = {
|
||||
flake = false;
|
||||
url = "./test-drv.nix";
|
||||
};
|
||||
|
||||
outputs = {self, nixpkgs, h}:
|
||||
let
|
||||
h' = import h.outPath;
|
||||
hello = h'.hello;
|
||||
in {
|
||||
packages.x86_64-linux.h = h;
|
||||
packages.x86_64-linux.hello = hello;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
# let
|
||||
# toolchain = import /home/lxsameer/src/toolchain/test-stdenv.nix {};
|
||||
# nixpkgs = import /home/lxsameer/src/nixpkgs {};
|
||||
# myenv = toolchain.createPkgSet;
|
||||
# in myenv.ninja #.stdenv
|
||||
# nix build --impure --expr 'with import ./. { crossSystem = (import ./lib).systems.examples.musl64 // { useLLVM = true; }; }; bash'
|
||||
|
||||
let
|
||||
tmpPkgs = import /home/lxsameer/src/nixpkgs {};
|
||||
# pkgs = import /home/lxsameer/src/nixpkgs {
|
||||
# crossSystem = tmpPkgs.stdenv.hostPlatform // {
|
||||
# config = "x86_64-unknown-linux-musl";
|
||||
# useLLVM = true;
|
||||
# linker = "lld";
|
||||
# isMusl = true;
|
||||
# isStatic = true;
|
||||
# };
|
||||
# };
|
||||
|
||||
static = tmpPkgs.pkgsMusl.pkgsStatic;
|
||||
#stdenv = static.llvmPackages_16.libcxxStdenv;
|
||||
|
||||
|
||||
|
||||
monorepoSrc = tmpPkgs.fetchgit {
|
||||
url = "https://devheroes.codes/Serene/llvm-project.git";
|
||||
rev = "b2c0361bcc08afdf466a605a23924bcd64fa2b86";
|
||||
hash = "sha256-wUKHwWYYlKa0v5zEJXxndleYtK7wzJKi0vqr3lNkGMI=";
|
||||
};
|
||||
|
||||
overrideSrc = { inherit monorepoSrc; };
|
||||
buildLlvm = static.llvmPackages_16.override overrideSrc;
|
||||
|
||||
targetLlvm = static.llvmPackages_16.override overrideSrc;
|
||||
# pkgsStaticLlvm.
|
||||
llvm = static.llvmPackages_16.override (prev: overrideSrc // {
|
||||
|
||||
buildLlvmTools = buildLlvm.tools;
|
||||
targetLlvmLibraries = targetLlvm.libraries or {};
|
||||
targetLlvm = targetLlvm.llvm or {};
|
||||
officialRelease = null;
|
||||
gitRelease = {
|
||||
version = "16.0.6";
|
||||
rev = "b2c0361bcc08afdf466a605a23924bcd64fa2b86";
|
||||
rev-version = "17-disable-shared-1";
|
||||
};
|
||||
});
|
||||
|
||||
stdenv = llvm.libcxxStdenv;
|
||||
in tmpPkgs.hello.override { inherit stdenv; }
|
Loading…
Reference in New Issue