From nobody Sat Mar 14 04:31:35 2026 X-Original-To: dev-commits-src-all@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 4fXpMq2skPz6V8Sx for ; Sat, 14 Mar 2026 04:31:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fXpMq0pzmz3Jgn for ; Sat, 14 Mar 2026 04:31:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773462695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7hdNl87kGxudFLTRxJeowYB22M+sy23hfyVMJ+Dthv8=; b=LuajZsnmsMLLA+qtMPFW5BtlOWujJREuBfsRNBnRrR0DF7WelSfTaH1C85BEcwl5THnvL2 oB/nYIIgPFo4YvwBejHbU/j7Ins8MlPBMEetVum5NG5m7b/+3oVJZjBUSeaHaRa0k6WzyJ TDSWagQ10eOsPsHo9cmEB/PIU8saAQLlP8yWz8NMV/4hfiimQCmhnk21FonkdYdulYdHxR 2EyxbZYuZKd1pOPFJUf8zXEtvXK4MAkv2xVfLmedbBLpZ3ypjkbrOF3cAxYG4BCEh5r4/Y lTY+oRz5pRN+wt66HSxcCR57IJI57T8rH5CbMHroIHhsAs8jKkiv668DhSFccw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773462695; a=rsa-sha256; cv=none; b=ePgrn5/gtvtbtPq13BDuEbM13v3THpgTwN9XElm99pn/spefAzQvG0FOOZNQoU5ZMWRB3l rPwnaq54+xE+TNViwL7fTo3sW7eeSiQcA1WJDzU0Rz6RP4PEz/+b8s1jFkrFdi66hgLekA HeSt92D+vgHC2klOoZcZlgKpYsH4VZ5GXueRsueLOgTlTBmUTgf3NlIrNFnXrf8HAlWTnK bf4ti3Ep//JWH8Kuva1ClGPujyylF4L+05jWp5zV29j4etYgDMyW9cEtdLS/UQW1NBi0oB mJFg6A4AkZ73vAwvUcdfOFQ7djrawGZey1zZkFxm/S3c6uxbkR4Fiaqqz8BGJw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773462695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7hdNl87kGxudFLTRxJeowYB22M+sy23hfyVMJ+Dthv8=; b=O/u2Xyw1zd6IKKNyANYRocYAjDZGTl66Zpl0h0gULRjggArRktOHi3kBtY+j5fOMy4BH1N 399qK/hfnEZviljKeu1sVW23vOPBA03pnJuaLow+ddOy6a15WKnTs4Kev9j14L1r4gM5SM VOpSBEx/7jID2gibapHDrF/Sel1SgGPhltN6i78xgPCjIXRUV3T8x125VkPQWGrlQIeuK2 7SUlYiantFKeFplrSGUdGooObASY6G/MMWCCledcJl55QNUyljLPW2vknjunzrcOJLUjZd cYa86koQdP9F/8e76njH//nf0H7ruvr72DCrxo7lDk888vStzzW2+PEuQPJ3tA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fXpMq0QyYz130X for ; Sat, 14 Mar 2026 04:31:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1860f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 14 Mar 2026 04:31:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: ShengYi Hung Subject: git: 9d26b82826d9 - main - libc: Fix dtor order in __cxa_thread_atexit List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: aokblast X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9d26b82826d9962d5085bc5d9df7f8a762c57602 Auto-Submitted: auto-generated Date: Sat, 14 Mar 2026 04:31:35 +0000 Message-Id: <69b4e4a7.1860f.4c5fa8be@gitrepo.freebsd.org> The branch main has been updated by aokblast: URL: https://cgit.FreeBSD.org/src/commit/?id=9d26b82826d9962d5085bc5d9df7f8a762c57602 commit 9d26b82826d9962d5085bc5d9df7f8a762c57602 Author: ShengYi Hung AuthorDate: 2026-03-12 13:40:34 +0000 Commit: ShengYi Hung CommitDate: 2026-03-14 04:30:25 +0000 libc: Fix dtor order in __cxa_thread_atexit The thread_local variable may creates another thread_local variable inside its dtor. This new object is immediately be registered in __cxa_thread_atexit() and need to be freed before processing another variable. This fixes the libcxx test thread_local_destruction_order.pass.cpp. Reported by: kib Approved by: lwhsu (mentor) MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55826 --- lib/libc/stdlib/cxa_thread_atexit_impl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/stdlib/cxa_thread_atexit_impl.c b/lib/libc/stdlib/cxa_thread_atexit_impl.c index 3123bd12dca8..3d742d90fb44 100644 --- a/lib/libc/stdlib/cxa_thread_atexit_impl.c +++ b/lib/libc/stdlib/cxa_thread_atexit_impl.c @@ -119,9 +119,9 @@ walk_cb_nocall(struct cxa_thread_dtor *dtor __unused) static void cxa_thread_walk(void (*cb)(struct cxa_thread_dtor *)) { - struct cxa_thread_dtor *dtor, *tdtor; + struct cxa_thread_dtor *dtor; - LIST_FOREACH_SAFE(dtor, &dtors, entry, tdtor) { + while ((dtor = LIST_FIRST(&dtors)) != NULL) { LIST_REMOVE(dtor, entry); cb(dtor); free(dtor);