[{"id":3679901,"web_url":"http://patchwork.ozlabs.org/comment/3679901/","msgid":"<CAKvuMXAAFMahxmY5YHMzvLga7O8eLmch7UemQzZi2XPJgrcbfw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-21T13:58:44","subject":"Re: [PATCH] libstdc++: Use 32-bit platform wait type for OpenBSD and\n DragonFly [PR120527]","submitter":{"id":90409,"url":"http://patchwork.ozlabs.org/api/people/90409/","name":"Tomasz Kamiński","email":"tkaminsk@redhat.com"},"content":"On Tue, Apr 21, 2026 at 3:37 PM Jonathan Wakely <jwakely@redhat.com> wrote:\n\n> This defines __platform_wait_t as unsigned int for OpenBSD and\n> DragonFly. This means that std::semaphore will use unsigned int by\n> default, and so will benefit from more efficient wait/notify ops if we\n> start to use the OpenBSD futex(2) syscall or the DragonFly umtx(2)\n> syscalls. We don't currently use them, but if we start to in future, it\n> would be an ABI break to change __platform_wait_t later.\n>\n> libstdc++-v3/ChangeLog:\n>\n>         PR libstdc++/120527\n>         * include/bits/atomic_wait.h [__OpenBSD__ || __DragonFly]: Use\n>         unsigned int for __platform_wait_t.\n> ---\n>\n> Tested DragonFly 6.4 and x86_64-linux.\n>\nLGTM.\n\n>\n>  libstdc++-v3/include/bits/atomic_wait.h | 6 +++++-\n>  1 file changed, 5 insertions(+), 1 deletion(-)\n>\n> diff --git a/libstdc++-v3/include/bits/atomic_wait.h\n> b/libstdc++-v3/include/bits/atomic_wait.h\n> index 3d10b0a155e5..c874d6097304 100644\n> --- a/libstdc++-v3/include/bits/atomic_wait.h\n> +++ b/libstdc++-v3/include/bits/atomic_wait.h\n> @@ -108,7 +108,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n>  // a mutex/condvar based wait.\n>    namespace __detail\n>    {\n> -# if ATOMIC_LONG_LOCK_FREE == 2\n> +# if defined __OpenBSD__ || defined __DragonFly__\n> +    // These targets provide 32-bit futex-like syscalls.\n> +    // We don't currently make use of them, but we want to in future.\n> +    using __platform_wait_t = unsigned int;\n> +# elif ATOMIC_LONG_LOCK_FREE == 2\n>      using __platform_wait_t = unsigned long;\n>  # else\n>      using __platform_wait_t = unsigned int;\n> --\n> 2.53.0\n>\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=O1MV+Ij3;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=O1MV+Ij3","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.129.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0P9m6rd9z1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 23:59:39 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id D041B4BA900D\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 13:59:37 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by sourceware.org (Postfix) with ESMTP id 40E034BA2E0E\n for <gcc-patches@gcc.gnu.org>; Tue, 21 Apr 2026 13:58:59 +0000 (GMT)","from mail-yw1-f197.google.com (mail-yw1-f197.google.com\n [209.85.128.197]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-481-vXJx14hmNim5cf2OV0Tp3A-1; Tue, 21 Apr 2026 09:58:57 -0400","by mail-yw1-f197.google.com with SMTP id\n 00721157ae682-7a45cf7ff24so68515277b3.0\n for <gcc-patches@gcc.gnu.org>; Tue, 21 Apr 2026 06:58:56 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org D041B4BA900D","OpenDKIM Filter v2.11.0 sourceware.org 40E034BA2E0E"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 40E034BA2E0E","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 40E034BA2E0E","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776779939; cv=none;\n b=Z9JYkSDSKoPd1snvIPTtR28+Cogud5NKfG1xVW+znhqiBPdnY0t8zaMqqB82hChmQB11Qs+/B6wlqoWB4NJrcSbeg2SscL2SKLpXmU/tvC7g2qaPuCN+8MViNClsXFnClQi5ks2NNZw4DT/W81ZiTgH8sQUHIl3v+FWlV4c4MRc=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776779939; c=relaxed/simple;\n bh=cTKWp9uINo0DP+QLMnWbqxPrZEIs/R5YqQkYbKT8CjA=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=A0FwVIVp9O8ZvpC1RGMtWygPpqHBvP1Va0GZcHX0CNiEUXrMuFY31EsRXJLAseHGT0OsDsz+sojnXXH6fZ7iPZBGaH9X3SeCMBGgTLufqnjJ51hFanJ8GMPDKZU0R7+4mxMhkq2LmNfozLCIZyKqZDNy5xy27pfL2GGwuNyDkGI=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776779938;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=TwlGZsgW9cjygL4LhHTVHkeG6yjNde8+kz6CZB3Pm6U=;\n b=O1MV+Ij3+UItNLV82hN9KooFjmOTL8ED+PVdHkUCDlZWSTcTZB50sXgbClJvoC8j21AE3k\n wtDspnLSowyqvbyjK8rcasBxyarEMdKp6Afn7HEHitnFBHqs+pk072W7lKaHdBRAhyM8kT\n GSkJt9X5Z77d8KM93Fv/5SOpqcQn8cM=","X-MC-Unique":"vXJx14hmNim5cf2OV0Tp3A-1","X-Mimecast-MFC-AGG-ID":"vXJx14hmNim5cf2OV0Tp3A_1776779936","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776779936; x=1777384736;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=TwlGZsgW9cjygL4LhHTVHkeG6yjNde8+kz6CZB3Pm6U=;\n b=MBg1hYwfH9zZxEn6vA/DU4XrN+G/tAhGxLkPyKxw9F5PrLJqInID9PVYlp31jjGJfT\n tCYPrciLaVSC7vQP2+LkaJvURwTvmE+dtldx1VR1HPwsag00cngwgj1v92+g/qdjqEba\n RJAHZgAznri8IHqqk/slA/MeH3EMgEUcx7TAUqYChnnljlYgz2LHD6zr175HpPsc3BoZ\n 6cCx3x30PTBgdta4ktGvbBn+A/+B8w8rdDaZvR3+QTEPPvYsyatk+QFBvho3vBGWniWV\n F59k/XsXpwtrq14XMsxD5M8N32rtlzeLxO3S0rodg+rW1lXv3BfQLkBlsz5V/StBYPr2\n 6akw==","X-Gm-Message-State":"AOJu0YwuBK9GRHOZaan6EIIjLFJAluvXDmIiZUVLIVIcmPqkVSicD74p\n uTt+XYHMJfQ8q2cu1GVJzrtZQKolPGWWoN6uyBgC0RV/UzVfPrk57lNeYNgPz4znd8qVp8BvAdf\n Nu7iMKnm2KN0pUtFS1zGoUUBnutX+0H6RAsZQPhaZym9k2/cZngDv9UNPjYIowvreSH0tVvJB2s\n hHk8R9y4Z70Nzg40t/Xo+vbjt3dT4tqepdjQ==","X-Gm-Gg":"AeBDiev3uQ7VC8JPJAwZ+P6RUYKRHNlU4PxvdIOT5CDskxwL6D0JFmodqEVJk2NJdar\n tz2SnAZgvRnSLZE0xRp14Nq2J8TFc52UKvDSv4oIIEQNo8Mvurv/USlK9zd2f+dNUFL49IK49bR\n rwqmgZ4lFbIc135v+8pDQtQeJALTTZA4SMnD6bllyozaocSkWchElqHGvQa0y/5apTsSXCoKfj8\n ZIXl1AfEDA9i7Mth+NBRO7pHCAtBQwt+O1FCHg5lYcZaXSGMgGoCJaLtaXTfU0uFsYsxy4DxuFg\n yw==","X-Received":["by 2002:a05:690c:c4f9:b0:7b2:4735:b99a with SMTP id\n 00721157ae682-7b9ed05fa8amr177728867b3.49.1776779936342;\n Tue, 21 Apr 2026 06:58:56 -0700 (PDT)","by 2002:a05:690c:c4f9:b0:7b2:4735:b99a with SMTP id\n 00721157ae682-7b9ed05fa8amr177728407b3.49.1776779935776; Tue, 21 Apr 2026\n 06:58:55 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260421133641.969451-1-jwakely@redhat.com>","In-Reply-To":"<20260421133641.969451-1-jwakely@redhat.com>","From":"Tomasz Kaminski <tkaminsk@redhat.com>","Date":"Tue, 21 Apr 2026 15:58:44 +0200","X-Gm-Features":"AQROBzAKatrucAwwhua0T8tfXdB1Ha60XDxTWiuQUh8YlI-5HACqeGAN2-vVG84","Message-ID":"\n <CAKvuMXAAFMahxmY5YHMzvLga7O8eLmch7UemQzZi2XPJgrcbfw@mail.gmail.com>","Subject":"Re: [PATCH] libstdc++: Use 32-bit platform wait type for OpenBSD and\n DragonFly [PR120527]","To":"Jonathan Wakely <jwakely@redhat.com>","Cc":"gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org,\n Marc Espie <espie@cvs.openbsd.org>, John Marino <gnugcc@marino.st>","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"ip8kBJneooqdMmaTO_DiK-BvP1zm5-Lk0UUQYMNRmUA_1776779936","X-Mimecast-Originator":"redhat.com","Content-Type":"multipart/alternative; boundary=\"000000000000eb1f87064ff8d0f3\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]