| 28 Mar 2025 |
K900 | And you're just linking an already built newlib | 20:18:58 |
n3tcat | I think they might be? I am not entirely sure what -lgcc and -static-libgcc do - I assume they link into newlib | 20:19:12 |
K900 | No, that's libgcc | 20:19:31 |
K900 | But it could be the same thing | 20:19:45 |
K900 | Uhh there is a setting for this | 20:20:37 |
K900 | Somewhere | 20:20:39 |
n3tcat | Like for choosing how libgcc is compiled? | 20:20:57 |
K900 | Like you can set march in the platform definition | 20:20:59 |
K900 | Somewhere | 20:21:08 |
K900 | OK so here's the way I remember this can work | 20:23:09 |
n3tcat | would this be a gcc setting or a nix setting? I am struggling to find anything | 20:23:09 |
K900 | You can use lib.systems.elaborate "m68k-unknown-none-elf" | 20:23:32 |
K900 | In a REPL or something | 20:23:38 |
K900 | That will shit out a huge attrset | 20:23:44 |
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 |