From nobody Fri Jul 16 10:23:38 2021 X-Original-To: freebsd-toolchain@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 83C4312A3626 for ; Fri, 16 Jul 2021 10:23:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GR6ll3C4Vz4b6M; Fri, 16 Jul 2021 10:23:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "tensor.andric.com", Issuer "R3" (verified OK)) (Authenticated sender: dim) by smtp.freebsd.org (Postfix) with ESMTPSA id 413C92C111; Fri, 16 Jul 2021 10:23:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtpclient.apple (unknown [IPv6:2001:470:7a58:0:6d12:b035:71df:b1ee]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 01E8325F72; Fri, 16 Jul 2021 12:23:44 +0200 (CEST) From: Dimitry Andric Message-Id: <77803112-7C05-40EA-9A46-8A5EB419950C@FreeBSD.org> Content-Type: multipart/signed; boundary="Apple-Mail=_965080ED-F28E-4F81-8088-5FD65DA4CBBD"; protocol="application/pgp-signature"; micalg=pgp-sha1 List-Id: Maintenance List-Archive: https://lists.freebsd.org/archives/freebsd-toolchain List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-toolchain@freebsd.org X-BeenThere: freebsd-toolchain@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\)) Subject: Re: Why is main's system clang (12.0.1-rc2) using /usr/local/bin/aarch64-unknown-freebsd14.0-ld ? (such breaks things) Date: Fri, 16 Jul 2021 12:23:38 +0200 In-Reply-To: <7073D16F-4505-4948-8232-A9618DF2FE5F@yahoo.com> Cc: FreeBSD Toolchain To: marklmi@yahoo.com References: <7073D16F-4505-4948-8232-A9618DF2FE5F.ref@yahoo.com> <7073D16F-4505-4948-8232-A9618DF2FE5F@yahoo.com> X-Mailer: Apple Mail (2.3654.100.0.2.22) X-ThisMailContainsUnwantedMimeParts: N --Apple-Mail=_965080ED-F28E-4F81-8088-5FD65DA4CBBD Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On 16 Jul 2021, at 02:21, Mark Millard via freebsd-toolchain = wrote: > # c++ -v -o trivial trivial.cpp > FreeBSD clang version 12.0.1 (git@github.com:llvm/llvm-project.git = llvmorg-12.0.1-rc2-0-ge7dac564cd0e) > Target: aarch64-unknown-freebsd14.0 > Thread model: posix > InstalledDir: /usr/bin > "/usr/bin/c++" -cc1 -triple aarch64-unknown-freebsd14.0 -emit-obj = -mrelax-all --mrelax-relocations -disable-free -disable-llvm-verifier = -discard-value-names -main-file-name trivial.cpp -mrelocation-model = static -mframe-pointer=3Dnon-leaf -fno-rounding-math = -mconstructor-aliases -munwind-tables -target-cpu generic = -target-feature +neon -target-abi aapcs = -fallow-half-arguments-and-returns -fno-split-dwarf-inlining = -debugger-tuning=3Dgdb -v -resource-dir /usr/lib/clang/12.0.1 = -internal-isystem /usr/include/c++/v1 -fdeprecated-macro = -fdebug-compilation-dir /usr/home/root/c_tests -ferror-limit 19 = -fno-signed-char -fgnuc-version=3D4.2.1 -fcxx-exceptions -fexceptions = -faddrsig -o /tmp/trivial-5d90b5.o -x c++ trivial.cpp > clang -cc1 version 12.0.1 based upon LLVM 12.0.1 default target = aarch64-unknown-freebsd14.0 > #include "..." search starts here: > #include <...> search starts here: > /usr/include/c++/v1 > /usr/lib/clang/12.0.1/include > /usr/include > End of search list. > "/usr/local/bin/aarch64-unknown-freebsd14.0-ld" --eh-frame-hdr = -dynamic-linker /libexec/ld-elf.so.1 --enable-new-dtags -o trivial = /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib = /tmp/trivial-5d90b5.o -lc++ -lm -lgcc --as-needed -lgcc_s --no-as-needed = -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o = /usr/lib/crtn.o Yes, this is an unfortunate (and sometimes unwanted) side effect of the way the clang driver searches for its linker(s). It prefers "target specific executables" (meaning, those beginning with the target triple) above generic executables, when searching for linkers, assemblers and other external tools. See the Driver::GetProgramPath() function: = https://github.com/llvm/llvm-project/blob/release/12.x/clang/lib/Driver/Dr= iver.cpp#L4981 In short, if it finds aarch64-unknown-freebsd14.0-$TOOL in your PATH, it will prefer that over $TOOL, even if the 'naked' $TOOL would be found in an earlier PATH component. For programs like ld, as and such, these will be found if you install the devel/binutils port with an arch-specific FLAVOR. In this case, I assume this was because you installed a CROSS_TOOLCHAIN package such as freebsd9-gcc, or directly installed the aarch64-binutils package? Note that the native binutils package does not cause these problems, since it prefixes its tools with $arch-portbld-freebsd14.0. E.g., the 'vendor' field of the triple is set to "portbld", not "unknown". I guess the flavored binutils packages do use the "unknown" vendor field to avoid installation conflicts. But at some point this should be resolved: either all binutils ports should use the "portbld" vendor, or all of them should use "unknown", but this mixing is causing trouble, in my opinion. -Dimitry --Apple-Mail=_965080ED-F28E-4F81-8088-5FD65DA4CBBD Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCYPFeKgAKCRCwXqMKLiCW o2dsAKDjT7Y+Nv7YG0X31BYbqt4SwjTSHgCgh9lxmgFo36D0uu8q375E5t2VaPA= =QpgF -----END PGP SIGNATURE----- --Apple-Mail=_965080ED-F28E-4F81-8088-5FD65DA4CBBD--