!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

581 Members
127 Servers

Load older messages


SenderMessageTime
28 Mar 2025
@k900:0upti.meK900And you're just linking an already built newlib20:18:58
@stephen:crabsin.spacen3tcat 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:0upti.meK900No, that's libgcc20:19:31
@k900:0upti.meK900But it could be the same thing 20:19:45
@k900:0upti.meK900Uhh there is a setting for this 20:20:37
@k900:0upti.meK900Somewhere 20:20:39
@stephen:crabsin.spacen3tcatLike for choosing how libgcc is compiled?20:20:57
@k900:0upti.meK900Like you can set march in the platform definition 20:20:59
@k900:0upti.meK900Somewhere 20:21:08
@k900:0upti.meK900 OK so here's the way I remember this can work 20:23:09
@stephen:crabsin.spacen3tcatwould this be a gcc setting or a nix setting? I am struggling to find anything20:23:09
@k900:0upti.meK900 You can use lib.systems.elaborate "m68k-unknown-none-elf" 20:23:32
@k900:0upti.meK900In a REPL or something 20:23:38
@k900:0upti.meK900That will shit out a huge attrset 20:23:44
@k900:0upti.meK900 That you can take and pass to crossSystem instead of just the triple 20:24:04
@k900:0upti.meK900And hopefully that attrset will have a place to put the right march value in 20:24:27
@k900:0upti.meK900That will hopefully be obvious from the name 20:24:35
@stephen:crabsin.spacen3tcat Sick! I have never used the nix repl before, do I have to do something to define lib? 20:24:42
@stephen:crabsin.spacen3tcat
 λ 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:0upti.meK900 nix repl nixpkgs 20:25:18
@k900:0upti.meK900 Or maybe nix repl <nixpkgs> 20:25:25
@k900:0upti.meK900I don't remember which one works on 2.2420:25:35
@stephen:crabsin.spacen3tcatahh tyty20:25:42
@stephen:crabsin.spacen3tcatI def have so much more to learn about nix20:25:50
@stephen:crabsin.spacen3tcat
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
@stephen:crabsin.spacen3tcatoh god sorry for wall20:28:06
@stephen:crabsin.spacen3tcat
nix-repl> (lib.systems.elaborate "m68k-unknown-none-elf").gcc
{ }
20:39:34
@stephen:crabsin.spacen3tcatoh ok20:39:37
31 Mar 2025
@sapphire:pub.solarSapphire joined the room.01:15:48
@weethet:catgirl.cloudWeetHet joined the room.13:06:20

Show newer messages


Back to Room ListRoom Version: 6