!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

426 Members
96 Servers

Load older messages


SenderMessageTime
17 Dec 2024
@alexfmpe:matrix.orgalexfmpe* spite-driven development is the only proven methodology22:40:33
19 Dec 2024
@fgrsnau:matrix.orgStefan joined the room.21:44:38
20 Dec 2024
@0xfeebdaed:matrix.org0xfeebdaed joined the room.04:02:11
@xiaoxiangmoe:matrix.orgšŸ° xiaoxiangmoe joined the room.13:58:16
@p14:matrix.orgp14 nixpkgs#pkgsStatic.pkgsLLVM.ncurses works on master (at least recently) but is broken on staging. (heads up Tristan Ross) 14:11:33
@rosscomputerguy:matrix.orgTristan Ross Fun... 15:06:42
@pascallor:matrix.orgpascallor joined the room.18:39:15
@aliarokapis:matrix.orgAlexandros LiarokapisRedacted or Malformed Event20:06:49
@aliarokapis:matrix.orgAlexandros Liarokapis

Hi All. Not sure if this is a good place to ask but I would imagine this group has spent a bit more time groking the details of the host -> target dependency theory from the nixpkgs manual. Is this correct?

let mapOffset(h, t, i) = i + (if i <= 0 then h else t - 1)

dep(h0, t0, A, B)
propagated-dep(h1, t1, B, C)
h0 + h1 in {-1, 0, 1}
h0 + t1 in {-1, 0, -1}
----------------------------- Take immediate dependencies' propagated dependencies
propagated-dep(mapOffset(h0, t0, h1),
               mapOffset(h0, t0, t1),
               A, C)

shouldn't the final line be just dep instead of propagated-dep ?
because otherwise I think a propagatedBuildInputs would be propagated across a whole buildInputs chain.
eg if propagated-dep(0, 1, C, D), dep(0, 1, B, C), dep(0, 1, A, B) then this results in propagated-dep(0, 1, B, D), propagated-dep(0, 1, A, D)

20:08:33
@aliarokapis:matrix.orgAlexandros Liarokapishttps://nixos.org/manual/nixpkgs/stable/#ssec-stdenv-dependencies-propagated20:10:08
@aliarokapis:matrix.orgAlexandros Liarokapis uh.. judging from the in {-1,0,-1} typo it doesn't seem very far off 20:13:08
@aliarokapis:matrix.orgAlexandros Liarokapisthis section has been there for like forever and I don't see it being discuss much20:28:52
@artturin:matrix.orgArtturin Was written by John Ericson 20:32:29
@p14:matrix.orgp14
In reply to @rosscomputerguy:matrix.org
Fun...
Having tried to make repro, I now think this was a false alarm
22:10:53
@p14:matrix.orgp14
In reply to @rosscomputerguy:matrix.org
Fun...
* Having tried to make repro, I now think this was a false alarm, apologies.
22:20:39
21 Dec 2024
@stablejoy:matrix.org@stablejoy:matrix.org left the room.05:08:14
@p14:matrix.orgp14 reno: (tangent from https://github.com/NixOS/nixpkgs/pull/366401) - it looks funny to me that the llvm sources also have to be built twice, but I have no Darwin experience. I see one build is with the bootstrap tools and one without. I presume that's all expected, but just wonder aloud if there is some way to avoid that. I suppose the reason is that the sources are built by unpacking a FOD and then copying bits out of it, and that copying happens with tools from different stages. And thinking more, I suppose it could be undesirable to reuse the bootstrap -src derivation since it would imply fetching the bootstrap tools if you needed to rebuild the -src derivation. 11:40:11
@p14:matrix.orgp14Anyone else wondering what I'm talking about it's these two derivations: (nixpkgs @ )087408a407440892c1b00d80360fd64639b8091d nix-store --query -R $(nix-instantiate --system aarch64-darwin -A llvmPackages) | grep llvm-src-1611:41:10
@p14:matrix.orgp14 * Anyone else wondering what I'm talking about it's these two derivations: (nixpkgs @ 087408a407440892c1b00d80360fd64639b8091d) nix-store --query -R $(nix-instantiate --system aarch64-darwin -A llvmPackages) | grep llvm-src-1611:41:16
@p14:matrix.orgp14 *

Anyone else wondering what I'm talking about it's these two derivations: (nixpkgs @ 087408a407440892c1b00d80360fd64639b8091d)

nix-store --query -R $(nix-instantiate --system aarch64-darwin -A llvmPackages) | grep llvm-src-16
/nix/store/g0w6vxlsapnd0asv939aj8pdwjbqj2mm-llvm-src-16.0.6.drv
/nix/store/yhzv33cm9bx6sb5i0pvz4s9ikll4sgaj-llvm-src-16.0.6.drv
11:41:40
@paparodeo:matrix.orgreno linux does the same thing I believe. nix-store --query -R $(nix-instantiate -A stdenv) shows xgcc and gcc built and I believe xgcc is the 1st throw away one and gcc is the one used for the stdenv. 11:55:49
@paparodeo:matrix.orgreno pkgs/stdenv/linux/default.nix and the darwin one have some comments to why they build twice and matches with your intuition. 11:59:14
@reckenrode:matrix.orgRandy EckenrodeThere are some limitations due to input addressing, but building multiple times during the bootstrap is intentional. The bootstrap is attempting to follow a traditional compiler bootstrap build where the target compiler is used to build itself.15:01:15
@reckenrode:matrix.orgRandy Eckenrode * 15:01:37
@reckenrode:matrix.orgRandy Eckenrode(Limitations like having to use the originally built libc++ instead of building libc++&c with the target compiler.)15:01:57
@reckenrode:matrix.orgRandy EckenrodeI would be surprised if thatā€™s what is happening with lldbPlugins unless itā€™s somehow accidentally capturing a package from the bootstrap that isnā€™t build otherwise.15:03:19
@reckenrode:matrix.orgRandy EckenrodeIdeally, once the bootstrap is finished, everything should be using the same llvmPackages_X version that was built for Darwin.15:03:41
@reckenrode:matrix.orgRandy EckenrodeWith recent changes, that would include both Rust and cross using the bootstrapped LLVM (which is much better than it used to be).15:04:03
* @reckenrode:matrix.orgRandy Eckenrode
In reply to @reckenrode:matrix.org
I would be surprised if thatā€™s what is happening with lldbPlugins unless itā€™s somehow accidentally capturing a package from the bootstrap that isnā€™t build otherwise.
looks at the PR
15:12:27
@reckenrode:matrix.orgRandy EckenrodeOh, yeah. Itā€™s probably that. The LLVM derivation can be messy like that, capturing (or not) unexpected things.15:12:56

Show newer messages


Back to Room ListRoom Version: 6