Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Sep 2019 15:18:42 +0000
From:      Brooks Davis <brooks@freebsd.org>
To:        Sid <sid@bsdmail.com>
Cc:        freebsd-toolchain@freebsd.org
Subject:   Re: linker not using make.conf
Message-ID:  <20190904151842.GA71523@spindle.one-eyed-alien.net>
In-Reply-To: <trinity-008aa4cb-9c85-4504-9364-cd7875281113-1567544648345@3c-app-mailcom-lxa02>
References:  <trinity-008aa4cb-9c85-4504-9364-cd7875281113-1567544648345@3c-app-mailcom-lxa02>

next in thread | previous in thread | raw e-mail | index | archive | help

--ReaqsoxgOBHFXBhH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Sep 03, 2019 at 11:04:08PM +0200, Sid wrote:
> In /etc/make.conf, I have
>  LD=3D /usr/local/bin/ld.lld80
>=20
> This is not used for ports. It may be used for building the kernel and wo=
rld.
>=20
>  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 in=
vocation)
>  *** Error code 1
>=20
>  XLD=3D /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 compil=
er is used for ports than kernel and the base. When LD is set, XLD only app=
lies when it is set as well, but this suggests that XLD is not working corr=
ectly either.
>=20
> 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.
>=20
> I built my computer without ld in the base system, and this has worked we=
ll. make.conf should reference the chosen linker without having to manually=
 link it. Otherwise, LD in make.conf is not working correctly, and gives th=
e 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 s=
et, when it's not.
>=20

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

--ReaqsoxgOBHFXBhH
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBAgAGBQJdb9XRAAoJEKzQXbSebgfA2W8H/2nRJsxmTUKyNMlnELNQKmpd
3Gv2PbcT1250V2xB5PLb1+amgOagEzJbHnHYkmknHEg+bfJyMnN3/xoKv8DyEphw
SWe3GcdlJnYByMF6HArVqMx4WpkgZx3UrhzYc173wd0DC51ffgHrRzOTbIPZ1qy3
7+PbRcVCKuPIkSa1r/Od6Rt0ePkLwIQ8UC8MH0ncF617Ew0V5vQ1X8dUmqwVTjY2
l7f98iWw9nnnRNyFJSBrlAbCKQV7OqRu9xje2P+vnBVY1ObxBr7B2iGnFdJGWuoo
eQCAyrNI4KQBWFgwdrtAMxpoxEdWF/At3c4GiUlS5I9+diNlagb0LAEgs5wMir4=
=Xkbf
-----END PGP SIGNATURE-----

--ReaqsoxgOBHFXBhH--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190904151842.GA71523>