!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

560 Members
119 Servers

Load older messages


SenderMessageTime
13 Jan 2026
@jopejoe1:matrix.orgjopejoe1 (4094@epvpn) changed their display name from jopejoe1 (4094@39c3) to jopejoe1 (4094@epvpn).08:24:56
14 Jan 2026
@bpub:matrix.orgBPub changed their display name from Robert to BPub.18:49:26
16 Jan 2026
@keiwop:matrix.orgkeiwop joined the room.12:43:55
@neobrain:matrix.orgneobrain joined the room.13:41:20
17 Jan 2026
@theo-paris:matrix.orgTheo ParisIs there a reason nixpkgs only has cctools for darwin, and not linux hosts? I need cctools-port to be able to cross compile pongoOS 🙃22:35:53
@theo-paris:matrix.orgTheo Paris* Is there a reason nixpkgs only has cctools for darwin, and not linux hosts? I need cctools-port to be able to cross compile pongoOS 🙃 Attempting to build it with --impure results in missing macos headers22:36:37
@emilazy:matrix.orgemily Darwin cross doesn't work in general right now. our ld64 patch set is incompatible with cctools-port and the latter was lagging far behind at the time we switched to our patches 22:38:24
@emilazy:matrix.orgemily IIRC cctools-port patches are kind of crufty in various ways too. 22:39:13
18 Jan 2026
@reckenrode:matrix.orgRandy Eckenrodecctools-port doesn’t support LTO and does code signing in a weird way.19:55:24
@reckenrode:matrix.orgRandy Eckenrode(Or, rather, LTO is broken.)19:55:34
@reckenrode:matrix.orgRandy Eckenrode We patch libcodedirectory to support the missing functionality. They exec sigtool, which is awful. 19:56:15
@reckenrode:matrix.orgRandy Eckenrode The expectation in tools is that a binary linked and signed automatically by a linker will have the linker-signed flag set. That causes them to update the signature after processing them (e.g., by strip and install_name_tool). 19:57:01
@reckenrode:matrix.orgRandy Eckenrode sigtool doesn’t set the flag and is effectively unmaintained, so it probably never will. 19:57:18
@reckenrode:matrix.orgRandy EckenrodeAfter Swift, I plan to switch Darwin to use LLD, so cross-compilation should be easier.19:57:49
@reckenrode:matrix.orgRandy Eckenrode * 19:57:58
@reckenrode:matrix.orgRandy Eckenrode Or to answer the question more directly, we’re using our own port. It’s been a low priority making Linux to Darwin cross work. Probably the easiest way now is to use LLVM binutils in cross, force -fuse-ld=lld, and hope for the best. 19:59:19
@reckenrode:matrix.orgRandy Eckenrode Note that Darwin bintools is almost entirely LLVM tools anyway. The only tools that aren’t are the linker, codesign_allocate, install_name_tool, lipo, and ranlib. Even if I can’t make LLD the default, those will be switched to LLVM or dropped. cctools won’t be in the bootstrap for 26.05 regardless. 20:01:53
@reckenrode:matrix.orgRandy Eckenrode codesign_allocate is useless on macOS. macOS native tools don’t need to pre-allocate. It’s only needed by sigtool, which can hardcode a reference to it. install_name_tool doesn’t work on binaries with reexports, but those are rare. Ones that need to reexport can use the version from cctools. lipo doesn’t work on archives, which breaks Meson tests. I’m inclined to disable those tests. ranlib isn’t fully compatible with the cctools one (mostly in terms of flags Xcode passes), but enough stuff should work we can use the LLVM in most cases. 20:03:32
@reckenrode:matrix.orgRandy Eckenrode *
  • codesign_allocate is useless on macOS. macOS native tools don’t need to pre-allocate. It’s only needed by sigtool, which can hardcode a reference to it.
  • install_name_tool doesn’t work on binaries with reexports, but those are rare. Ones that need to reexport can use the version from cctools.
  • lipo doesn’t work on archives, which breaks Meson tests. I’m inclined to disable those tests.
  • ranlib isn’t fully compatible with the cctools one (mostly in terms of flags Xcode passes), but enough stuff should work we can use the LLVM in most cases.
20:04:01
@reckenrode:matrix.orgRandy EckenrodeI opted to do my own ports because at the time cctools-port was behind Apple’s releases. They’ve since caught up (AFAIK by treating the port as a patch set on top of Apple’s releases, which is also what I do), but we’re not switching back (e.g., because of the LTO and code-signing issues).20:07:13
19 Jan 2026
@thefloweringash:matrix.orgthefloweringash Maybe slightly off topic, but I happened to see these messages.sigtool was written exclusively for nixpkgs. If it's no longer required I'll gladly archive it. If it's actually still required but causing problems by being unmaintained I can transfer it to a nixpkgs owned github organization. And as always, thank you for hard work in this area 10:19:04
@sapphire:pub.solarSapphire changed their profile picture.20:16:19
20 Jan 2026
@reckenrode:matrix.orgRandy EckenrodeAnd thank you for the groundwork you did.01:38:48
@reckenrode:matrix.orgRandy Eckenrode sigtool’s main issue is lacking certain features, which won’t be coming. I don’t think we want to maintain our own implementation long term. The way forward is likely a codesign-compatible CLI to rcodesign. 01:39:53
@reckenrode:matrix.orgRandy EckenrodeIt supports the needed features (particularly bundle signing and setting the linker-signed flag), but it has its own CLI.01:40:36
@reckenrode:matrix.orgRandy Eckenrode * sigtool’s main issue is lacking certain features. I don’t think we want to maintain our own implementation long term, so we probably don’t want to do that ourselves. The way forward is likely a codesign-compatible CLI to rcodesign. 01:43:29
@emilazy:matrix.orgemily FWIW I think Nixpkgs is no longer the world's biggest sigtool consumer at this point 😅 01:49:51
@reckenrode:matrix.orgRandy EckenrodeIs Conda using it?18:37:11
@emilazy:matrix.orgemily isn't cctools-port? 19:40:11
@emilazy:matrix.orgemilyI think that gets a fair bit of use.19:40:17

There are no newer messages yet.


Back to Room ListRoom Version: 6