| 28 Mar 2025 |
K900 | That you can take and pass to crossSystem instead of just the triple | 20:24:04 |
K900 | And hopefully that attrset will have a place to put the right march value in | 20:24:27 |
K900 | That will hopefully be obvious from the name | 20:24:35 |
n3tcat | Sick! I have never used the nix repl before, do I have to do something to define lib? | 20:24:42 |
n3tcat | λ nix repl
Nix 2.24.12
Type :? for help.
nix-repl> lib.systems
error: undefined variable 'lib'
at «string»:1:1:
1| lib.systems
| ^
nix-repl>
| 20:24:47 |
K900 | nix repl nixpkgs | 20:25:18 |
K900 | Or maybe nix repl <nixpkgs> | 20:25:25 |
K900 | I don't remember which one works on 2.24 | 20:25:35 |
n3tcat | ahh tyty | 20:25:42 |
n3tcat | I def have so much more to learn about nix | 20:25:50 |
n3tcat | nix-repl> lib.systems.elaborate "m68k-unknown-none-elf"
{
aesSupport = false;
androidNdkVersion = null;
androidSdkVersion = null;
avx2Support = false;
avx512Support = false;
avxSupport = false;
canExecute = «lambda canExecute @ /nix/store/080nxzd0qcvxfsh02kk5bzisski6yw6a-source/lib/systems/default.nix:88:20»;
config = "m68k-unknown-none-elf";
darwinArch = "m68k";
darwinMinVersion = "11.3";
darwinMinVersionVariable = null;
darwinPlatform = null;
darwinSdkVersion = "11.3";
efiArch = "m68k";
emulator = «lambda emulator @ /nix/store/080nxzd0qcvxfsh02kk5bzisski6yw6a-source/lib/systems/default.nix:314:20»;
emulatorAvailable = «lambda emulatorAvailable @ /nix/store/080nxzd0qcvxfsh02kk5bzisski6yw6a-source/lib/systems/default.nix:308:29»;
extensions = { ... };
fma4Support = false;
fmaSupport = false;
gcc = { ... };
hasSharedLibraries = false;
is32bit = true;
is64bit = false;
isAarch = false;
isAarch32 = false;
isAarch64 = false;
isAbiElfv2 = false;
isAlpha = false;
isAndroid = false;
isArmv7 = false;
isAvr = false;
isBSD = false;
isBigEndian = true;
isCompatible = «lambda isCompatible @ /nix/store/080nxzd0qcvxfsh02kk5bzisski6yw6a-source/lib/systems/default.nix:92:22»;
isCygwin = false;
isDarwin = false;
isEfi = false;
isElf = false;
isFreeBSD = false;
isGenode = false;
isGhcjs = false;
isGnu = false;
isILP32 = false;
isJavaScript = false;
isLLVMLibc = false;
isLinux = false;
isLittleEndian = false;
isLoongArch64 = false;
isM68k = true;
isMacOS = false;
isMacho = false;
isMicroBlaze = false;
isMinGW = false;
isMips = false;
isMips32 = false;
isMips64 = false;
isMips64n32 = false;
isMips64n64 = false;
isMmix = false;
isMsp430 = false;
isMusl = false;
isNetBSD = false;
isNone = true;
isOpenBSD = false;
isOr1k = false;
isPower = false;
isPower64 = false;
isRedox = false;
isRiscV = false;
isRiscV32 = false;
isRiscV64 = false;
isRx = false;
isS390 = false;
isS390x = false;
isSparc = false;
isSparc64 = false;
isStatic = false;
isSunOS = false;
isUClibc = false;
isUnix = false;
isVc4 = false;
isWasi = false;
isWasm = false;
isWindows = false;
isi686 = false;
isiOS = false;
isx86 = false;
isx86_32 = false;
isx86_64 = false;
libDir = null;
libc = "newlib";
linker = "bfd";
linux-kernel = «repeated»;
linuxArch = "m68k";
parsed = { ... };
qemuArch = "m68k";
rust = { ... };
rustc = «repeated»;
sse3Support = false;
sse4_1Support = false;
sse4_2Support = false;
sse4_aSupport = false;
ssse3Support = false;
staticEmulatorAvailable = «lambda staticEmulatorAvailable @ /nix/store/080nxzd0qcvxfsh02kk5bzisski6yw6a-source/lib/systems/default.nix:311:35»;
system = "m68k-none";
ubootArch = "m68k";
uname = { ... };
useAndroidPrebuilt = false;
useLLVM = false;
useiOSPrebuilt = false;
}
nix-repl>
I assume I need to dig into gcc here but how do I do that? | 20:28:01 |
n3tcat | oh god sorry for wall | 20:28:06 |
n3tcat | nix-repl> (lib.systems.elaborate "m68k-unknown-none-elf").gcc
{ }
| 20:39:34 |
n3tcat | oh ok | 20:39:37 |
| 31 Mar 2025 |
| Sapphire joined the room. | 01:15:48 |
| WeetHet joined the room. | 13:06:20 |
WeetHet | Why does adding meta.platforms = [ "wasm32-unknown-none" ]; not work?
Calling nix-build -E '(import <nixpkgs> { crossSystem = "wasm32-unknown-none"; }).callPackage ./package.nix { }' gives me
Package <...> is not available on the requested hostPlatform:
hostPlatform.config = "wasm32-unknown-none"
package.meta.platforms = [ ]
| 13:09:01 |
WeetHet | Am I insane? | 13:09:10 |
WeetHet | I never built packages for platforms not in lib.platforms | 13:09:33 |
WeetHet | Does callPackage filter out platforms not present there? | 13:09:49 |
WeetHet | Oh, it's some rustPlatform shenanigans | 13:21:14 |
WeetHet | Whyyyy
{
system ? builtins.currentSystem,
pkgs ? import <nixpkgs> {
inherit system;
crossSystem = "wasm32-unknown-none";
overlays = [
(final: prev: {
lib = prev.lib // {
platforms = prev.lib.platforms // {
wasm32-unknown-none = [ "wasm32-unknown-none" ];
all = prev.lib.platforms.all ++ final.lib.platforms.wasm32-unknown-none;
};
};
rustc = prev.rustc // {
targetPlatforms = prev.rustc.targetPlatforms ++ final.lib.platforms.wasm32-unknown-none;
};
})
];
},
}:
pkgs.callPackage ./package.nix { }
$ nix-instantiate --eval -E '(import ./. { }).meta.platforms'
[ ]
| 13:30:13 |
WeetHet | I swear to god I'm going to just use hooks | 13:30:27 |
WeetHet | Oh you also need to redefine rustPlatform, I see:
rustPlatform = prev.makeRustPlatform {
inherit (final) rustc cargo;
};
| 13:46:06 |
WeetHet | Wait what:
error: Package <...> is not available on the requested hostPlatform:
hostPlatform.config = "wasm32-unknown-none"
package.meta.platforms = [
"wasm32-unknown-none"
]
| 13:46:46 |
| Grimmauld (any/all) joined the room. | 15:40:12 |
| 1 Apr 2025 |
| stroem changed their display name from stroem - sourcegraph to stroem. | 09:41:51 |
| Sandro changed their display name from Sandro 🐧 to Sandro 🐧 [c3d2]. | 13:57:58 |
| Sandro changed their display name from Sandro 🐧 [c3d2] to Sandro 🐧. | 13:59:27 |
rosssmyth | I would appreciate it if someone could please review this to see if it is acceptable
https://github.com/NixOS/nixpkgs/pull/392204 | 17:48:06 |