In my recent llvm-shim fix to enable dsymutil, I missed the case where /usr/bin gets checked for binaries before looking up binaries in lib/llvm/*/bin. So, it would find /usr/bin/nm which eventually symlinks to llvm-shim, thus execing the same thing over and over again. It manifests with a hung build during prefix bootstrap.
The fix requires:
- update two patches
- release a new patch archive:
- bump the ebuild to use the new patch archive:
I will attach the two patches in a moment:
Essentially, these patches allow skipping anything that is a symlink to llvm-shim.
Created attachment 679934 [details, diff]
modified llvm-prefix patch
Created attachment 679937 [details, diff]
modified llvm-shim patch
Swearing comic book style: @#*^!!
These patches removes the exec loop.
But now it fails to find dsymutil again.
Can someone else (more familiar with C than I am) take a look at this?
Maybe I'm using realpath incorrectly or something.
I will have very limited time to work on this for at least a few months.
Maybe look at reverting my llvm-shim patch, and instead change the llvm ebuild to install a symlink from llvm-dsymutil to dsymutil so that llvm-shim can find it without investigating symlinks.
I think a more productive approach would be to focus on 8.2.1-r101. I might at some point try and get the ld64 updated to the 11 variant there.