Conversation
|
For some reason rustc hangs while building the rapier3d fork |
|
do the darwin x86_64 natives actually build? I went without them because I stopped being able to build them after a certain nightly version a while ago iirc |
|
yep, hanging for me too on rapier compilation. |
|
I tried updating to latest nightly, using this simba pr for some [patch.crates-io]
simba = { git = "https://github.com/aabizri/simba", rev = "cd656c434b55c59744d7c181cd8f44d1dabd0e8d" }It builds on all the other platforms but still hangs when building for darwin x86_64. |
|
saw that simba PR but it wasn't merged so we pinned to the out-of-date nightly to avoid more git dependencies. Huh, really concerning if the rapier fork builds fine but it hangs with sable_rapier. Possibly zigbuild or another one of our configs is the thing causing it to hang? |
|
I reran the build with RUSTC_LOG=trace and it gets just past codegen, then stops outputting anything after this. Is this an LLVM bug??? |
I think it may be the difference between x86_64_unknown_linux and x86_64_apple_darwin host |
|
ideally someone would reproduce this on a real linux host using |
|
i've got gdb in the container now, it seems like LLVM is just taking a really really long time to perform codegen (or has a loop somewhere). I'll try overriding the opt-level down a step, since slower natives are preferable to none. Really strange that this builds fine locally. backtraces taken from after it hangs always contain |
|
hm, intriguing. thank you for the investigation effort! |
|
It builds fine when I remove |
|
So... if i change to Going to run the full gradle task and mark this ready for review if it succeeds. I also enabled thin LTO since LTO is off by default in release mode and usually translates to a nice performance win. (it would be nice if someone not on darwin could run the benchmarks before/after the change). |
|
could we increase codegen units just for darwin natives? to reduce the penalty for non-darwin natives |
|
Done |
|
right then. If you stage all the changes except for the natives, I can squash merge and the workflow will build the natives and push them to main, and I'll include them in the next patch. |
|
still weirded out by the fact 1 codegen unit breaks darwin, but we'll go for it haha |
|
thank you so much for the help here, would've taken me ages to figure this out! |
Needs testing (waiting for docker...)
Fixes #64