From nobody Fri Feb 27 22:01:17 2026 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 4fN2N70gR4z6TNn3 for ; Fri, 27 Feb 2026 22:01:27 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic314-20.consmr.mail.gq1.yahoo.com (sonic314-20.consmr.mail.gq1.yahoo.com [98.137.69.83]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN2N64htbz3kkM for ; Fri, 27 Feb 2026 22:01:26 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1772229679; bh=yg4Ih7gHMMmfwu8CzrkuB31pg1RUf4yg4Rq7JKwgOQo=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From:Subject:Reply-To; b=WOX0VQ2T3/h/mJfCLvOcj2fWDQRa+GHghyksDk8Kz19ULpuDYvEC8Gbji2Y8oeUtFsDZRYWLYf8xqHjpSRzy5N83bnNjbqDXubRashKwxDRI1atqjfERtLFJ11FGuCxl+ECpebLWr63RmQzM7ieiyAXK7n+QPxwk+Xh17KbQUaXJDu+qO/WR4RK2q1MdKFCmtpexti7lWZYEJ1oQhgu+oRsPlEyM8Hd7Wp73aH7KwXY6M+9RyQhmA3f6DbEpGJLKk7k0RlFDB8zimdMq+hVW3EIOSOA2ZSxCZvmnlmgG2VFnYGgIbGSj2qQxhnYvW6A1SFDp4Lh9mOwh0FqPXVcSug== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1772229679; bh=guODkmT0GGdzFPJJM7wEAZ2dXezuVT90pWdG4I+jL93=; h=X-Sonic-MF:Date:Subject:To:From:From:Subject; b=DLB87TnDRCPpC+VH+C3ogfgAGbUXZFIvAMjf2CMy6EQyPUGHZGtcycGgIDtbRTn6zGlCoUOJghDf6crDXuH1WX97fh3Eh3pwSPZCbb4kLsGv4smiR1sULYyK9TBB2ntp1L8n8TeQXYP/N5yKkhtxg5bcq4/bCQR5WPWOuCDSPNXMiMTTbWhNTvVK4yD6zxrA449vN2ciqGLhhj2oX+NqQnW1p8H67SXTrj173QB7fHTmzF/ABMVBnhIaiEyNVKC7txlQhbX1tZwMsk5nWqyXhvWLKFfmYiOZtRdWGiqNvycwn0atEcZreg0bvi7YJUDbxTFFX6PLemH/9EPrMFvVxg== X-YMail-OSG: lN8mVKwVM1kchpdck4FYbRP84fZ6h2ezr1PiwhaSViNxcAnApXVDHbJoIrh_zta OHrsmFz0guWbQPkKmjpwTo.b_RGVBWyJq6iKyxotA_WHcfGdtKAw_9dPV6lWjJOQ.RHJuOb492DF JUE1INLAl.CCDYMxnGKHQ9c._XtTqU8AvZgoZnF_AJbINNDxfAh.oBr91inzFb29IfTvaZbANSYj 1x4v_ZjV1xnV3EzZtNF.CXJxmWycY8OgUSKlhc7io3k2zHz4wdUbMldIXrJz9XpHNVYX6gbImBxW kiTfcbPuUadseJBvsBMTkZ4RxzEKMq3qWTxXxfmksAz1rydyZ3QQWKsNKB33GtEXol24tiMaAlcS 3Y6ORtqckke.faLzACQAMESI90G7SzI2dkgXiBrXhk.AV2qZ1Jeh4t6qSW9sneUGq.DMDZMpQ.37 8bMMZUQIo0beCB4dvOBWenj5ovgE0j6wXJAg4oMQJ92fR.9Xc2VEANABAsKVOHK966qbfAN7N6i. HlKY6ryacAIz4YfFWspt6ISaEuH.d9GoJV_Za.SB_xHB.aH0oBZ.74It50cZMjX2bR8Mqt3396Qg GmwCKaw8drC3HaKXv8FhM.wmklujwuesKvSthVtruUmXxMzm1lMNMF_udi4mJtosXx_ib7MVdiR4 Xqh6r2o.B8ccGUEO50HwDLgQdPaKQxlUWXmvdULNLy2NS4vvQuv63Y9wNo9.a9dwygY.E21H4gJ7 PE8Cnn_jLuLtSuHPPrfHZ5m3RO5z1X9ZzqyklCKyzcrjg32R_paG97sDA2OS7dPv7kRNDvzLwXF9 xwoluJbkN_6JVaHRU4WcJgGlBAYkGIbNkAqdezDjpwvPxd8PXW6nh3TZkp8mIyYCnPwiHW7IkU_c gv4QOMlOkjmZv5XMC6U0YeOkAfxbdyRTHjKfDoxnIixZItoILfz6_q6AluJZvu0vHACtOL4nRYXb QmxibYO.Jx9nlC4a3AvPKT0NroB8gMIXREPnCbIF5VJP3rGWee5lXeJRfRTBDDT8vFVjrF2FV_p3 2lWHbydMcHtSB5usYbHPnT1CYgwsvAJkA_GRT90sXczsPfaQxnjrVTdxcQKbk4ei.hCRPZnaQfs. isT.D6gY.RffT6fDZK54qM8B8A1.r_cyY_YjIwMdnI2aBxsLhWNJCYwOeKWKoJWAYdda7vkUKv_K 549ejbGJroW0gtDca2pbBk33Fw73mSbpi46M4JDscZgGbdIVNObcChs4QV8lSxc4bBl0ZMDz77Ie B2ppKCLgfag7Xz882QXwXQv7e2I1HME696xfYEVvXAbgZmeaPqv.KLhELkG9n_p.YIedIR.88OFX LPm.X95AckBSi1virCCPaTV93u5MN4oQutxL4toJyuIZ7aRHEP7Ivqr2Mv4YoxThiJmJHPeToNuB 81wq5.8Eke0D3xUQFrGXzEH.7NJ4aFCOlo2CXoDVlXpQyhQX_o3jGhyI73o3PEIjVGZAoBWKEz7C zOU4OksTp.muiR0hS10VRfWa6TuixNc75X4gOWX8Rf1x2leA_DB9NTF1kEDS8HLMyKw4Koe135ID wcPsNEScnCL4IzSvBmQygyAflRDPU1ETlUvt36xjlTxZyAYN28oe_o_879ynukPzkRkpHokZFeSe 708ZMzyjSI4gTTzjgyvAZGenPN_0V4zhsVRpsrm89TRZsIwY2Vn1xMe.zeEcHNohkhrXgyhq5HWd Kk3sS1xrTZkRZZMyh04R.OevPwP4bu5CUuBf9tt4ikbYI_58UKdCZy93bo9WSoXkGywBwHHHbYc_ kdbvQroNLy0wY1iiJMy7zmjp8q73S8i2zS2C2GDXdj8SBSOW1Cyu5wFxlk.EczuCx1RUbZEDLyg5 ZbI0dOdzfEjWPMQ8aWfjlqGJQa83HBxVLarj0GC5FwDjWQdL9wE9C.OoLW0munAKOw10nV8ARKF9 VrDbioymmLLCogxc.aRZCtFJuYwcT5YnS8R8ltYM2hwWy2o2EbSrjX3gUTOFIx2V5iAt_VjSawPB 88p.3P.8IMgyuQOae6aAyrdj5pBXGjLsVCLnutv1l0tvSAu7krMQ7GjZQI3zy0my7gMDpUBhhgF1 6dXn5gj47ONuPfRbfdkNBHY6vWKgC8MIdCiTvum1CeAsjNVnxUnAaUBire9V8h3k3eCDdh9rK5IG K3IhHdtncm4el0f5RMemkHOL2pzhr8x87L9FS29uhwadAzK7HASMFsP.eUe2_.K5bpXn3d3Xh8Pz o7h2yKzwi5TTBSuKl80vXcO74AYGV3p5y1XC.yLKYAOXvU5h6bZSvYSb9j_tvScm3ADXvMTc2dMO _qI_It5iw6JFh1XeFGWWvHJFXrPY3xi9._656VYpmvF_WlIftPg-- X-Sonic-MF: X-Sonic-ID: d46b7342-5997-43c3-8ba4-519d6225d0ae Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Fri, 27 Feb 2026 22:01:19 +0000 Received: by hermes--production-gq1-6dfcf9f8b-82g65 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 601d5302bbf9ea35dc23bfdae888d64e; Fri, 27 Feb 2026 22:01:17 +0000 (UTC) Message-ID: <4514bc7c-49c0-46af-b67a-3e4565a7e8cd@yahoo.com> Date: Fri, 27 Feb 2026 14:01:17 -0800 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: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: ee73475119ff - main - llvm: Link private LLVM libraries against compiler_rt for aarch64 To: John Baldwin , Jessica Clarke Cc: "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" , Andrew Turner References: <698a0b1e.1d294.40e36519@gitrepo.freebsd.org> <23acebb1-f71c-46e6-9eea-3fa44316335d@FreeBSD.org> <720e4cb6-fd13-4686-93d9-ef095ad611c2@yahoo.com> Content-Language: en-US From: Mark Millard In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailer: WebService/1.1.25198 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US] X-Rspamd-Queue-Id: 4fN2N64htbz3kkM X-Spamd-Bar: ---- On 2/27/26 13:24, John Baldwin wrote: > On 2/27/26 15:55, Mark Millard wrote: >> On 2/27/26 09:27, John Baldwin wrote: >>> On 2/9/26 11:47, John Baldwin wrote: >>>> On 2/9/26 11:40, Jessica Clarke wrote: >>>>> On 9 Feb 2026, at 16:28, John Baldwin wrote: >>>>>> >>>>>> The branch main has been updated by jhb: >>>>>> >>>>>> URL: https://cgit.FreeBSD.org/src/commit/? >>>>>> id=ee73475119ff7aa98bd11828625d524f6ab87f06 >>>>>> >>>>>> commit ee73475119ff7aa98bd11828625d524f6ab87f06 >>>>>> Author:     John Baldwin >>>>>> AuthorDate: 2026-02-09 16:26:52 +0000 >>>>>> Commit:     John Baldwin >>>>>> CommitDate: 2026-02-09 16:26:52 +0000 >>>>>> >>>>>>       llvm: Link private LLVM libraries against compiler_rt for >>>>>> aarch64 >>>>>> >>>>>>       This is required for GCC which uses libcalls for outlined >>>>>> atomics. >>>>> >>>>> This doesn’t seem right, they’re provided by libgcc.a, so why aren’t >>>>> they being pulled in? libcompiler_rt.a doesn’t even have the symbols. >>>> >>>> My guess is that we don't link libraries against libgcc by default, >>>> only >>>> binaries (maybe this is a GCC feature/bug vs clang)?  I have another >>>> review >>>> open for a couple of google test libraries which similarly fail to >>>> link. >>> >>> So after some more digging (along with Jessica), it seems that GCC only >>> uses -lgcc_s (and not -lgcc) for C++ (but not C) on both Linux and >>> FreeBSD. >>> clang's FreeBSD toolchain driver is supposed to mimic GCC but >>> doesn't, it >>> applies the C rules even for C++ linking, so clang is implicitly adding >>> both -lgcc and -lgcc_s for C++. >>> >>> On Linux, libgcc.so is a linker script that includes both the dynamic >>> library and -lgcc which is how the static libgcc (including outline >>> atomics >>> for aarch64) is effectively linked into C++ shared libraries on Linux. >>> (Note: libgcc.so is a linker script on seemingly all arches on Linux, >>> not >>> just aarch64) >>> >>> So I think we have a couple of choices here.  I can patch the devel/ >>> freebsd-gccN >>> ports to stop passing -shared-libgcc to cc1plus which will cause GCC to >>> follow >>> the same rules as clang on FreeBSD (passing -lgcc -as-needed -lgcc_s - >>> no-as-needed >>> instead of -lgcc_s), or we could change libgcc.so to be a linker script >>> to match >>> Linux (and then eventually fix the FreeBSD driver in clang to only pass >>> -lgcc_s for C++ linking) (I think Andrew already has a review to make >>> libgcc.so >>> a linker script). >>> >>> I can see arguments both ways.  Using a linker script seems kind of dumb >>> given >>> all the hoops GCC goes to internally to decide whether or not to link >>> only >>> shared or static or both.  (Esp given libgcc is in theory part of the >>> compiler, >>> so the compiler should know that libgcc_s should depend on libgcc and be >>> able >>> to encode that in the default drivers.)  OTOH, the linker script >>> approach would >>> mean we would more closely align with Linux.  I think Jess favors >>> patching GCC. >>> Does anyone else have any strong opinions? >>> >> >> Is the question limited to devel/freebsd-gcc* ? Or does it span >> lang/gcc* use as well? > > We don't really support building the base system with lang/gcc* > (it's why devel/freebsd-gcc* exist) as the base system builds require > various changes like kernel printf support, defaulting to libc++, etc. > Likely more food for thought than you were originally trying to deal with for aarch64 contexts. I was not trying to indicate that any devel/freebsd-gcc* commit vs. lang/gcc* commit would/should be the same commit. More like . . . Are all of the potentially involved linking issues/techniques limited to that aarch64 system context and the use of devel/freebsd-gcc* ? Or are there, for example, "uses libcalls for outlined atomics" issues also for lang/gcc* g++* use, especially when it is told to use -stdlib=libc++ ( the system libc++ ) instead of using libstdc++ ? Do any issues and techniques generalize beyond devel/freebsd-gcc* use in any meaningful way? Even without committing anything for lang/gcc* , notes might prove useful later for someone, depending on the answers to the above. -- === Mark Millard marklmi at yahoo.com