!lheuhImcToQZYTQTuI:nixos.org

Nix on macOS

1168 Members
“There are still many issues with the Darwin platform but most of it is quite usable.” — http://yves.gnu-darwin.org190 Servers

Load older messages


SenderMessageTime
8 Dec 2025
@emilazy:matrix.orgemilywell, we use a linker that is not the official default linker for macOS, that is deprecated upstream, and that has been more or less abandoned.17:36:09
@reckenrode:matrix.orgRandy EckenrodeSource releases were updated.17:36:26
@emilazy:matrix.orgemily so if the build is failing because of ld64 not handling something that the Xcode linker can handle, it's our problem to solve, not llama.cpp's. 17:36:29
@emilazy:matrix.orgemily ld64's? yeah, I saw it got some changes 17:37:03
@emilazy:matrix.orgemilybut it's certainly marked as deprecated, I'm assuming it's only getting very minimal maintenance before it goes away17:37:17
@emilazy:matrix.orgemilyjust saying that it's unreasonable to expect upstream to change their versioning format for a limitation of our old linker, if the linker Apple ships has no problem with it17:37:41
@reckenrode:matrix.orgRandy EckenrodeI mean it looks like 26.1 releases dropped.17:37:44
@emilazy:matrix.orgemilyoh cool17:37:49
@emilazy:matrix.orgemily anyway, I suggest checking what Xcode's linker produces in the resulting .dylib. we can always just patch the linker call downstream if necessary. 17:38:48
@reckenrode:matrix.orgRandy EckenrodeI want to switch Darwin to LLD, but it will take some work.17:39:16
@emilazy:matrix.orgemilyI wouldn't want to accommodate a non-standard build environment that uses a deprecated linker with limitations that were fixed in the standard build environment, as an upstream17:39:30
@reckenrode:matrix.orgRandy EckenrodeIf you just wrap it, you get the UNIX ld interface, which nothing on Darwin expects.17:39:38
@emilazy:matrix.orgemily(https://github.com/AnacondaRecipes/llama.cpp-feedstock/pull/25/commits/eee704136b3a4076c8ba95125d0f033a64fd4caf wow, does Anaconda use ld64 too…?)17:40:23
@reckenrode:matrix.orgRandy EckenrodeI tried it with my Swift work just for Swift, replacing the stdenv.17:40:41
@ihar.hrachyshka:matrix.orgIhar Hrachyshka ack on obsolete linker, I didn't know of the difference. if that's the case then I think we should patch to something like 0.0.0001 or perhaps 0.0.<last-working-version> until linker is updated. 17:40:49
@reckenrode:matrix.orgRandy EckenrodeI do have as a goal for 26.05 to have pure LLVM bintools on Darwin.17:41:22
@reckenrode:matrix.orgRandy Eckenrode The few things that need other tools can add them. 17:41:37
@reckenrode:matrix.orgRandy EckenrodeIdeally, no cctools or ld64 in the bootstrap, but that may not be possible.17:42:49
@emilazy:matrix.orgemilyhttps://github.com/ggml-org/llama.cpp/blob/bde188d60f58012ada0725c6dd5ba7c69fe4dd87/src/CMakeLists.txt#L140 is the relevant line, fwiw17:43:22
@emilazy:matrix.orgemilywe could probably just drop that on Darwin for now17:43:36
@emilazy:matrix.orgemilyI'm guessing nothing really cares about the version17:43:43
@emilazy:matrix.orgemilymaybe we should check whether LLD can handle this, though 🤔17:43:58
@reckenrode:matrix.orgRandy EckenrodeThat line will set the current version in the dylib.17:43:58
@emilazy:matrix.orgemilywe could always use LLD here if so17:44:05
@emilazy:matrix.orgemily(maybe not, I guess wrapping is a question)17:44:16
@emilazy:matrix.orgemily
shion:/v/f/1/j/T/tmp.gRxduPvwNI
❭ clang -shared foo.c -current_version 0.0.7299 -o libfoo.dylib
foo.c:1:9: warning: non-void function does not return a value [-Wreturn-type]
    1 | int a(){}
      |         ^
1 warning generated.
ld: warning: truncating -dylib_current_version to fit in 32-bit space used by old mach-o format

uh, that's fun :D

17:46:30
@ihar.hrachyshka:matrix.orgIhar Hrachyshkawhat's "old mach-o" and is there a "new" one...17:47:43
@emilazy:matrix.orgemilysomeone should check whether the Xcode toolchain is truncating it too17:48:18
@emilazy:matrix.orgemily
shion:/v/f/1/j/T/tmp.gRxduPvwNI
❭ otool -l libfoo.dylib | rg -A 5 LC_ID_DYLIB
          cmd LC_ID_DYLIB
      cmdsize 40
         name libfoo.dylib (offset 24)
   time stamp 1 Thu Jan  1 01:00:01 1970
      current version 0.0.255
compatibility version 0.0.0
17:48:20
@emilazy:matrix.orgemilyoh they have official binaries. how convenient17:48:52

Show newer messages


Back to Room ListRoom Version: 6