10 Sep 2024 |
Alyssa Ross | That's a cross compiled native compiler | 11:47:59 |
Alyssa Ross | A cross compiler would be pkgsCross.x86_64-unknown-redox.stdenv.cc or pkgsCross.x86_64-unknown-redox.buildPackages.gcc13
| 11:48:31 |
| matthewcroughan changed their display name from matthewcroughan - going to nix.camp to matthewcroughan. | 15:53:35 |
11 Sep 2024 |
zmitchell | Ah, it looks like relibc was recently removed from nixpkgs due to lack of maintenance. It also looks like Redox has their own patched Rust compiler.
I'm sifting through the nixpkgs source right now to try to figure out where I would swap out the URL pointing at rustc sources, but I'm a little confused by the layout. In pkgs/build-support/rust I see a bootstrap.nix that calls binary.nix , and that seems to download compiler binaries. But also in pkgs/development/compilers/rust it looks like rustc.nix is where we actually build rustc , but it takes a rustc argument?
| 19:07:59 |
12 Sep 2024 |
Alyssa Ross | Yes, it uses the bootstrap rustc to build itself | 08:20:01 |
Alyssa Ross | I'd first try to see how far you can get using the non-patched Rust compiler, which does have Redox targets | 08:20:19 |
Alyssa Ross | I'd be hesitant to add a patched rustc to Nixpkgs, because the last one made maintaining normal rustc more difficult. | 08:20:39 |
zmitchell | I wouldn't be adding the patched rustc to nixpkgs exactly for that reason. It also seems like their patched rustc exists because there's something missing from the upstream compiler. I'm not up to speed on that particular issue. | 15:16:35 |
zmitchell | My plan at the moment is get the patched rustc/cargo/etc packaged in their respective repositories, then replace the upstream versions via overlay in order to build relibc. That artifact can be exposed to nixpkgs. | 15:18:07 |
Alyssa Ross | How? | 15:18:21 |
Alyssa Ross | You can't use Nix code from elsewhere in Nixpkgs | 15:18:28 |
zmitchell | I'm not sure what you mean | 15:18:41 |
Alyssa Ross | What does "that artifact can be exposed to Nixpkgs" mean? | 15:18:56 |
zmitchell | I mean build it as a precompiled binary as it was previously done in https://github.com/NixOS/nixpkgs/pull/93568 | 15:20:07 |
Alyssa Ross | Well that's what I was talking about | 15:20:58 |
Alyssa Ross | That was removed because it got in the way of normal rustc | 15:21:04 |
Alyssa Ross | Since it used the same infrastructure | 15:21:10 |
zmitchell | Ok, I misunderstood | 15:21:29 |
Alyssa Ross | I think you should see how far you can get with upstream rustc first | 15:21:49 |
zmitchell | Sure, that's more of a Redox<->Rust Project conversation though instead of a Redox<->Nixpkgs conversation, and as a new contributor I'm not sure exactly what the limitations are that led them to maintain their own fork in the first place. I'll have to do more digging. | 15:23:05 |
zmitchell | How does providing relibc as a precompiled binary for Redox interfere with normal rustc? | 15:26:02 |
Alyssa Ross | Sorry, maybe I misunderstood | 15:27:11 |
Alyssa Ross | I thought you were talking about Redox rustc as a precompiled binary | 15:27:26 |
Alyssa Ross | What would be the point of having relibc as a precompiled binary though? If you need a special Rust compiler, presumably you need it for more than just libc. | 15:28:01 |
zmitchell | Ultimately we're trying to get Redox support in GCC so that you can compile non-Rust programs to run on Redox. We have a two-commit patch for adding Redox support, but as far as I can tell you need a supported libc for the platform as well. | 15:29:56 |
Alyssa Ross | So you're not interested in building Rust programs for Redox? | 15:30:36 |
zmitchell | Not using Rust in nixpkgs at the moment. | 15:31:03 |
Alyssa Ross | You have a project to specifically build GCC that targets Redox, using Nixpkgs? | 15:31:27 |
Alyssa Ross | And you only want to do what you need to make that workr? | 15:31:39 |
Alyssa Ross | * | 15:31:43 |