From nobody Wed May 18 20:28:25 2022 X-Original-To: dev-commits-src-main@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 16F471AE56ED; Wed, 18 May 2022 20:28:28 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 4L3PhC6vQ9z4SJC; Wed, 18 May 2022 20:28:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1652905708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I6J+QWg2uYhpFLR2OwmhhUnX5/V0EhQC3M24bdMfUfY=; b=XCumKnqt9yB9TsiG623XAvONRD9xeq2LUSjmqE5VC+Rru9eUytVBs6hwS5bNtM2aTu+TxU azzKwagkTJ0RdPR2MPH9wP01V04+Hbg3/+9yc0itjaGDKBBFYmmjxqELBllvOyKhCL4FVz N+CdpfY/6yB1o1alIVy02j4LaQMkvZv4SCRrlpRZjzcnYA7aRVe8CxMZP1rdptP0jnqt9s E6KFbYAAGX9DTWYR5GHiXaaJsgnk8sU60UfmpCmoqEBGJNKXVSKZaT8SxKOnpLc1YnlJ0D lKSYxABgQpTpxPmGmL0852GK+/YwRMZJAkOoTIFCRGKGZWk3eY2mDFQ1sq4B8A== Received: from [IPV6:2601:648:8680:ed60:8ce3:c94a:ed81:31cb] (unknown [IPv6:2601:648:8680:ed60:8ce3:c94a:ed81:31cb]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id AD74525878; Wed, 18 May 2022 20:28:26 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <82300056-132d-38c3-4a1b-521004c776f9@FreeBSD.org> Date: Wed, 18 May 2022 13:28:25 -0700 List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: git: 349cc55c9796 - main - Merge llvm-project main llvmorg-14-init-10186-gff7f2cfa959b Content-Language: en-US To: Brooks Davis , Dimitry Andric Cc: Konstantin Belousov , Charlie Li , "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" References: <202205141148.24EBmkZd015765@gitrepo.freebsd.org> <4b61bdc6-fdc7-57df-e9b7-52543fd083be@freebsd.org> <20220516154825.GF15201@spindle.one-eyed-alien.net> <5e5281b2-a9d1-3751-b09a-c88d210f4f55@FreeBSD.org> <698AE22D-5E95-405E-A8BE-AE67A3A7BE36@FreeBSD.org> <20220518193537.GH15201@spindle.one-eyed-alien.net> From: John Baldwin In-Reply-To: <20220518193537.GH15201@spindle.one-eyed-alien.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1652905708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I6J+QWg2uYhpFLR2OwmhhUnX5/V0EhQC3M24bdMfUfY=; b=At1GG/YBE/dtKRoXD6dpM15z7aaO/rjJOtZiC77qPtnVprMmTUmtR8CIzJAfXS+NAmHnTv sfIxmg1ue8fIwaJBuqLPbtHl2UqE8JmfMF/JLmo9WoKQPElkBIkrNhtl/vZGlRaFXL0ppO xxBFJEA6E95OtKjIrIKLU19plrxBLlyxdbTK0g7Kvx0FjLUm35rsfToD7HIhRMTY6mTMON DYBKQV3JNrZC05K8HZRahJSkDvGr39xh0rcoPmuEPbkzd+ikd3v78yztPdJzyVmxw5zPUm YAtbVCO0OUuI2yHz0f9ZOzSE7/QD7qT0YnaeQC2zEiITsi0OJndVviiAKSFWcg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1652905708; a=rsa-sha256; cv=none; b=pQAcoqB+1Jes7Sg9MX17RjQf1koEPpqmaFmcq3pFePH3gaBpjC8jDpym98sH0UU0JCD/zQ TXlVmIAuD4RVThVl5B25hrvnIzWvuTobOrVvnX3F7+KPN24/Mftf1oQJisX16FEAoMApK/ og01RIsgUAdVKok7s3ZR2efTQdZ0aDSMHICTyXre44FFjlafPAEE67HC+qYz7kGbquOsCc sInzFXRsBDTcgs9hw3Y99akjzAlSRRLWipdDTjeZ6Vp/jCzSi2t6JKtWoZnZUM5GOaTlph qcMmrQbEIdKqC4JEb0D2xxMbC2W/sP0dhUmw/S4DrNVrlLKGpRB16QB4Kc9bVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N On 5/18/22 12:35 PM, Brooks Davis wrote: > On Wed, May 18, 2022 at 09:17:58PM +0200, Dimitry Andric wrote: >> On 18 May 2022, at 02:33, Konstantin Belousov wrote: >>> >>> On Tue, May 17, 2022 at 10:56:14AM -0700, John Baldwin wrote: >>>> On 5/16/22 8:09 PM, Charlie Li wrote: >>>>> Brooks Davis wrote: >>>>>> On Mon, May 16, 2022 at 10:47:49AM -0400, Charlie Li wrote: >>>>>>> Dimitry Andric wrote: >>>>>>>> This was also reported by another user, and it turned out they were >>>>>>>> using WITHOUT_CROSS_COMPILER= in src.conf. If you also have that, try >>>>>>>> removing it and rebuilding. >>>>>>>> >>>>>>> Yeah I eventually figured that part out. Worked around (first attempt) >>>>>>> by building with devel/llvm14 CROSS_TOOLCHAIN, but resulted in certain >>>>>>> kernel modules (zfs and a few more) with malformed relocations. >>>>>>> Subsequent rebuild with the new world's toolchain corrected that. >>>>>> >>>>>> Does that mean we're missing patches in the port? Hopefully anything >>>>>> this critical can be merged into LLVM 14.0.3. >>>>>> >>>>> Probably: >>>>> >>>>> May 15 22:34:08 current-builder kernel: ---<>--- >>>>> May 15 22:34:08 current-builder kernel: Copyright (c) 1992-2022 The >>>>> FreeBSD Project. >>>>> May 15 22:34:08 current-builder kernel: Copyright (c) 1979, 1980, 1983, >>>>> 1986, 1988, 1989, 1991, 1992, 1993, 1994 >>>>> May 15 22:34:08 current-builder kernel: The Regents of the >>>>> University of California. All rights reserved. >>>>> May 15 22:34:08 current-builder kernel: FreeBSD is a registered >>>>> trademark of The FreeBSD Foundation. >>>>> May 15 22:34:08 current-builder kernel: FreeBSD 14.0-CURRENT #121 >>>>> main-n255657-48a1a6be196: Sun May 15 21:59:12 EDT 2022 >>>>> May 15 22:34:08 current-builder kernel: >>>>> root@current-builder:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG amd64 >>>>> May 15 22:34:08 current-builder kernel: clang version 14.0.2 >>>>> [...] >>>>> May 15 22:34:08 current-builder kernel: kldload: unexpected relocation >>>>> type 42, symbol index 8321 >>>> >>>> These are all type 42: >>>> >>>> #define R_X86_64_REX_GOTPCRELX 42 >>>> >>>> It's not a LLVM bug so much as it is probably missing support in the kernel and/or >>>> loader for this type of relocation. kldxref might also need updating. >>>> >>>> I suspect due to a mismatch of old lld with new clang or some such that the old >>>> lld failed to resolve these relocations to some other type or something weird like >>>> that? >>> >>> I do think this is a toolchain bug, or at least new and undesired behavior. >>> >>> For practical purposes, R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX are >>> same as R_X86_64_GOTPCREL64, I believe, but we do not expect GOT relocations >>> in the .o object modules on amd64. >> >> I don't see this with clang 14.0.3 from base on 14-CURRENT. None of my >> kernel modules has any of these relocations, and I also get no warnings >> from kldxref. >> >> Btw, I know that clang from ports will use /usr/local/bin/ld if it is >> available, so this might be GNU ld specific behavior? Charlie, do you >> have the binutils port installed? > > I don't believe this is true in all but the weirdest configurations. I > just tested on a system with binutils installed (providing > /usr/local/bin/ld) and clang13 uses /usr/local/llvm13/bin/ld as I'd > expect. Because of the foo## wrappers, clang doesn't know it's being > found via /usr/local/bin so doesn't look there by default. Instead it's > invoked as /usr/local/llvm##/bin/clang and looks for > /usr/local/llvm##/bin/ld. Maybe if you didn't install LLD it would > eventually look in PATH and find /usr/local/bin/ld. It gets more odd if you install amd64-binutils (used by amd64-gcc[69]) as that installs a x86-64-unknown-freebsd13.0-ld binary that clang will find and use. However, Charlie reported he only got this during the transition where the tree in /usr/obj had LLVM 14 but /usr had LLVM 13, so I'm not sure what the cause is or if it is even reproducible. -- John Baldwin