linker not using make.conf
Brooks Davis
brooks at freebsd.org
Wed Sep 4 15:18:50 UTC 2019
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20190904/cc2738e7/attachment.sig>
More information about the freebsd-toolchain
mailing list