{"id":2233155,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2233155/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/patch/20260505190809.3898686-2-adhemerval.zanella@linaro.org/","project":{"id":41,"url":"http://patchwork.ozlabs.org/api/1.2/projects/41/?format=json","name":"GNU C Library","link_name":"glibc","list_id":"libc-alpha.sourceware.org","list_email":"libc-alpha@sourceware.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260505190809.3898686-2-adhemerval.zanella@linaro.org>","list_archive_url":null,"date":"2026-05-05T19:06:50","name":"[v2,1/3] support: Add support_process_shared_robust_mutex","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"2cff733e3580f0e70a6017571f60ed07c5062e51","submitter":{"id":66065,"url":"http://patchwork.ozlabs.org/api/1.2/people/66065/?format=json","name":"Adhemerval Zanella Netto","email":"adhemerval.zanella@linaro.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/glibc/patch/20260505190809.3898686-2-adhemerval.zanella@linaro.org/mbox/","series":[{"id":502884,"url":"http://patchwork.ozlabs.org/api/1.2/series/502884/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/list/?series=502884","date":"2026-05-05T19:06:49","name":"nptl: Fix robust mutex support detection and defer robust list initialization","version":2,"mbox":"http://patchwork.ozlabs.org/series/502884/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2233155/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2233155/checks/","tags":{},"related":[],"headers":{"Return-Path":"<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":["incoming@patchwork.ozlabs.org","libc-alpha@sourceware.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","libc-alpha@sourceware.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=GdU7/K9k;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=GdU7/K9k","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=linaro.org","sourceware.org; spf=pass smtp.mailfrom=linaro.org","server2.sourceware.org;\n arc=none smtp.remote-ip=2607:f8b0:4864:20::e33"],"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 4g97Pf47Fbz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 05:10:14 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 8F2A84BABF35\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 19:10:12 +0000 (GMT)","from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com\n [IPv6:2607:f8b0:4864:20::e33])\n by sourceware.org (Postfix) with ESMTPS id E2C1F4BA799C\n for <libc-alpha@sourceware.org>; Tue,  5 May 2026 19:08:18 +0000 (GMT)","by mail-vs1-xe33.google.com with SMTP id\n ada2fe7eead31-610f4cf6ddcso159285137.1\n for <libc-alpha@sourceware.org>; Tue, 05 May 2026 12:08:18 -0700 (PDT)","from mandiga.. ([2804:1b3:a7c1:364:abee:44ff:b045:5a7])\n by smtp.gmail.com with ESMTPSA id\n a1e0cc1a2514c-95ce08f4a7asm7504046241.5.2026.05.05.12.08.16\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 05 May 2026 12:08:17 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 8F2A84BABF35","OpenDKIM Filter v2.11.0 sourceware.org E2C1F4BA799C"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org E2C1F4BA799C","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org E2C1F4BA799C","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778008099; cv=none;\n b=a38UC3NfE+uO+bjiyU7iFn9Pm7vJv8E4R0Lxz/K1jJ3xJYKbefCEB2J7Q8um9x3hIeBAZWoS84Qb2/GSSPx0dGuIBbkIQ5CRgmt/atgsKos7cq80MFHrGs7k5R6BtevjTi6iXTTAGNXNByl5KDdk85r5wB/Gwvl4nHyB1cBayrw=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778008099; c=relaxed/simple;\n bh=+SSVsmE6kVKSB8EXvdJTwTvgbRtC55Je9txgMQ+gqcQ=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=kmdURJXjP/ObQGFVVznfqt/gGrG31C5tZRovK+OhKdYYD+kJqkvSD08joLMuASWxZ93LPik0GxDebLMNSECcAam2KWumGnzFMySnh6Qbo/DqSM9Jr3dEiXlyZewi+PBGg3L4S/QJCu4wOzF6atWOuW6b5Hdi/Bi1gh34QO31lEw=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1778008098; x=1778612898; darn=sourceware.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=dDn68h72jIjI8U4hEHDseM+LUdAGP1zBrJx+1FVvZfc=;\n b=GdU7/K9kQKHlC9xOnaZfDfOKm0K3kKFoBsQCFk/skGV46vAf80wJNOlzhYNAAq09bH\n +mis5ETv+Z4MuOtjpwSP0WEDW5vh2y56Yr+JDbXCBpHc0JNolFsZKQmxTQWvDiIop+UV\n +nspth1uAOYMwx+dIF6Bz/8XHmu9hjYPOM6TZ4LayTao4Op7PP5LLuUZ+oIz/Fvgoogi\n wqvCipfxVZCdwWjvKJrzEHDDR6xAsWFqFIrJTsB9voSq1i6d7NYJigJ2JC5BBtF0ijKg\n P4XxG+XPaR2JsbNrziviKpXz6gkDgJMz9Kg4Il2ZupnFLgaRJksWXJtsrU6C1qbt8uyA\n VQLQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778008098; x=1778612898;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=dDn68h72jIjI8U4hEHDseM+LUdAGP1zBrJx+1FVvZfc=;\n b=L4mW+Zt4zF4bcHtaBkbjoG/WcBy8hHQdXWUvdreKpAxGxQqVNObR7zmpsUQJAO32rZ\n TcsgeY/FBxZkO7aELoo7MQ9MVeeARPbxACM1+Dmp9S52NXaV0XBMNeyVblABrEM87qp5\n WMakA7R8k/EXOuw608zPGGlscINWT19nfCA4LvZ+K+0WxZLhohEa+bX/N0Y6JTEqyWy2\n 43s+M4JIIDlp1qRL0zk8UzxzL1Oi6hAeqKu0URAfeLha2jot/h5aQJgq57c2xIc9f90q\n g+FwAmky4AzNcHnJks+n7kUHzYZqT6G2RU91b+LfPJ/OtwNQupghGRiJJQIkmriVprkj\n 4hxA==","X-Gm-Message-State":"AOJu0YxzC3XmyEwgmM7Ls4ozct1qBFq1qe8H7Q/2cljOLHQtKGT4rIOP\n xjlSfd0lc07m1TcEgbGgjgu/6yqzWixdP+6Hi3bwBsh3bgaiVR93a6EVwSnTFOIVmYq+bSnvezX\n jIrLD","X-Gm-Gg":"AeBDiet58B+5aHrIhafRt8T7QnVJZ/S0ULR/gexSSEeNS9DeCrZJGPP4moDxjeNzZrk\n SScgaRMysyQxUyFI71codnm/O+uzpjvCdFRiIO9OSc/yvRSMA9e1n15wkbAYZzlbMwiiL5m0OWH\n +0g2yYYvQgSJecM69S668CLUOaO1J3dvJK9Sjmj1+zGpZ+ivhnrUn3ic8TOht1HsVuMsr0P4u+S\n JzXNvmseyPtCQUu1cXFxDqEvN9Ecy3kB6xexBxV9qzCnMVtVVEFvYjiN7tTRwvezYk3elXYc5fj\n HZzWxxQ6/C+k0jx043QZo+tx+99lAxlO9vOe8J8EdR+57xC6/GEbXKXfrU54GwRLYYAkuR1Rpp6\n FmlUQV0TpW4P/9ItHJAGb8rensTmmRKrutWwMnLajJO98k3euFw9x7cYGwlhJ3iNvG1rl7Z1zUm\n Oi4uDJbSEgbTfF3X2etpgBz9LELQ3/UmwBJZd+pRD074M=","X-Received":"by 2002:a05:6102:d8a:b0:607:d68f:d0f6 with SMTP id\n ada2fe7eead31-62f55a492fdmr2718782137.20.1778008097810;\n Tue, 05 May 2026 12:08:17 -0700 (PDT)","From":"Adhemerval Zanella <adhemerval.zanella@linaro.org>","To":"libc-alpha@sourceware.org","Cc":"Florian Weimer <fweimer@redhat.com>","Subject":"[PATCH v2 1/3] support: Add support_process_shared_robust_mutex","Date":"Tue,  5 May 2026 16:06:50 -0300","Message-ID":"<20260505190809.3898686-2-adhemerval.zanella@linaro.org>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260505190809.3898686-1-adhemerval.zanella@linaro.org>","References":"<20260505190809.3898686-1-adhemerval.zanella@linaro.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"libc-alpha@sourceware.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Libc-alpha mailing list <libc-alpha.sourceware.org>","List-Unsubscribe":"<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>","List-Archive":"<https://sourceware.org/pipermail/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-request@sourceware.org?subject=help>","List-Subscribe":"<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>","Errors-To":"libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"},"content":"Returns whether process-shared robust mutexes are supported.\n---\n support/Makefile               |  1 +\n support/support_mutex_robust.c | 34 ++++++++++++++++++++++++++++++++++\n support/xthread.h              |  3 +++\n 3 files changed, 38 insertions(+)\n create mode 100644 support/support_mutex_robust.c","diff":"diff --git a/support/Makefile b/support/Makefile\nindex 3f19a98bdc4..4facaaead6b 100644\n--- a/support/Makefile\n+++ b/support/Makefile\n@@ -87,6 +87,7 @@ libsupport-routines = \\\n   support_isolate_in_subprocess \\\n   support_mem_access \\\n   support_mutex_pi_monotonic \\\n+  support_mutex_robust \\\n   support_need_proc \\\n   support_nscd \\\n   support_open_and_compare_file_bytes \\\ndiff --git a/support/support_mutex_robust.c b/support/support_mutex_robust.c\nnew file mode 100644\nindex 00000000000..2957aca230d\n--- /dev/null\n+++ b/support/support_mutex_robust.c\n@@ -0,0 +1,34 @@\n+/* Returns whether process-shared robust mutexes are supported.\n+   Copyright (C) 2025 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#include <support/xthread.h>\n+#include <sys/syscall.h>\n+#include <unistd.h>\n+\n+bool\n+support_process_shared_robust_mutex (void)\n+{\n+#ifdef __linux__\n+  void *head;\n+  size_t len;\n+  int r = syscall (__NR_get_robust_list, 0, &head, &len);\n+  return r == 0;\n+#else\n+  return true;\n+#endif\n+}\ndiff --git a/support/xthread.h b/support/xthread.h\nindex d585bd0c3c6..7afd96dd3b9 100644\n--- a/support/xthread.h\n+++ b/support/xthread.h\n@@ -36,6 +36,9 @@ void delayed__exit (int seconds);\n /* Returns true if Priority Inheritance support CLOCK_MONOTONIC.  */\n bool support_mutex_pi_monotonic (void);\n \n+/* Returns true if process-shared robust mutexes are supported.  */\n+bool support_process_shared_robust_mutex (void);\n+\n /* Terminate the process (with exit status 1) if VALUE is not zero.\n    In that case, print a failure message to standard output mentioning\n    FUNCTION.  The process is terminated with the exit function, so\n","prefixes":["v2","1/3"]}