On Tue, Sep 03, 2019 at 11:04:08PM +0200, Sid wrote: > In /etc/make.conf, I have > LD= /usr/local/bin/ld.lld80 > > This is not used for ports. It may be used for building the kernel and world. > > clang-8: error: unable to execute command: Executable "ld" doesn't exist! > clang-8: error: linker command failed with exit code 1 (use -v to see > invocation) > *** Error code 1 > > XLD= /usr/local/bin/ld.lld80 being set as well also provides the same error. > XD sets it for all, but XLD is only applicable if a different compiler is > used for ports than kernel and the base. When LD is set, XLD only applies > when it is set as well, but this suggests that XLD is not working correctly > either. > > I have to manually link /usr/bin/ld to /usr/local/bin/ld.lld80 for ports to > build correctly. This is with both make, and with portmaster. > > I built my computer without ld in the base system, and this has worked well. > make.conf should reference the chosen linker without having to manually link > it. Otherwise, LD in make.conf is not working correctly, and gives the > impression that one linker is used, when it's not. This can cause faulty > conclusions and confusion for developers as well, who think one linker is > set, when it's not. >
The LD variable only effects the very few cases where the linker is called directly. The linker is almost always run via clang. If you install the xtoolchain-llvm80 port it will install a link from /usr/local/llvm80/bin/ld.lld to /usr/local/llvm80/bin/ld which I think will be sufficient for your use case. -- Brooks
signature.asc
Description: PGP signature