{"id":2233153,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2233153/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/patch/20260505190809.3898686-3-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-3-adhemerval.zanella@linaro.org>","list_archive_url":null,"date":"2026-05-05T19:06:51","name":"[v2,2/3] nptl: Do not always assume set_robust_list availability (BZ 33225)","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"7c7b2af9071b99a744795f34d9570fb4691c1d5f","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-3-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/2233153/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2233153/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=UNw46paz;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=38.145.34.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=UNw46paz","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::936"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.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 4g97NT15k5z1yJx\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 05:09:13 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2732C4BA799C\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 19:09:11 +0000 (GMT)","from mail-ua1-x936.google.com (mail-ua1-x936.google.com\n [IPv6:2607:f8b0:4864:20::936])\n by sourceware.org (Postfix) with ESMTPS id 852514BA799E\n for <libc-alpha@sourceware.org>; Tue,  5 May 2026 19:08:23 +0000 (GMT)","by mail-ua1-x936.google.com with SMTP id\n a1e0cc1a2514c-95695190911so1326245241.2\n for <libc-alpha@sourceware.org>; Tue, 05 May 2026 12:08:23 -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.20\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 05 May 2026 12:08:21 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 2732C4BA799C","OpenDKIM Filter v2.11.0 sourceware.org 852514BA799E"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 852514BA799E","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 852514BA799E","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778008103; cv=none;\n b=RWxn1FB4yEAtvepu/Zip84zDLTOu8dxGRCT8Xt0BM7bXDL+m5RblrExAC6hcvvzgtB4u1smtMHBC5ReNFFkNbKGOKOa4+m5YMOghf77Lv2GU5C2U2tXVP7pdPw+FhCd53AgW7IWQQ/UKMX0sZFNejXlpiPrDW0kWMvoiGtIlVFg=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778008103; c=relaxed/simple;\n bh=RRPwl7yHx3wHsqDSeSqBvaKNLXjSxxuB/4/iEMdcH5c=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=jOSOmvsXH2wkpAszjL9L5RXGVKuKobhkvhsc0YTS1Yr4kgozDS+W2+o4gzcwauATfOHlQbBa4vbqNQZd8rTHE0OslzSoYiqrvDrHDVFV/oyRV44oeiC/ikRGgpZtftEDwOw96Htkpe+lsFI2uBZX9e6sPw/z3w2TZsSUJfxRbQ8=","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=1778008102; x=1778612902; 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=e1tQo/fmJU5NcynXJf61cqSsDtN5zrfMYr0mp/kgIo8=;\n b=UNw46pazt0QcWAUoccybo3Df9RR0nK4QoUgi1h7X9vnajUFjbQ4nEZrEEfIIhtr4OC\n WqJ5JZ8iMuHQ4QxXbsxZ/vMxtVVISh61lvdPO18URIQ6HGIFJOiA/H15u3BkxrZLT7bK\n i8B2TSyNOXthrilPfo3TaycLjxiONC5vSxm6FtPngBrslbH0GD8cl9QV6Irl1EScoOH7\n g0/5ob0jD6o/FOeRzDROKDz1Tft8NZ18DQdz9KKqMFI8/dWItrVht3j8Q53qoz80ELsG\n swCEXKFGiFU32u61dJyu+Yv1yKNbTEYmnquS9pwnGE9ygYbULN70EL84DVPz+YzNy2bK\n Fw4w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778008102; x=1778612902;\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=e1tQo/fmJU5NcynXJf61cqSsDtN5zrfMYr0mp/kgIo8=;\n b=HEfGoiphvn7TsgHS0DJJ327Rx7XFMYy+68p1ldCgrGH8+4rIAAv7seXZi0osF0KpmI\n hQyg+aUR18svi7ChQVhi59u5tfIeMgmzY3e8F/nFIg31w+RHbe2UIEl+ffpBH41CX8ST\n g0AkR1NTvHg/fkK5h57S51VO80IWJ9sb1ph0pownJ5ljJwIGjo6XCwbtezIQFquNbdQo\n 0h0e9EFX1HF+FhFYH8VWdCZC7peOdhaNU4aVMbARTViSM+EO4lMeeP+Bm5zkL38CjYek\n nNQM0lhVyDUz3ucgLE5SjJZzlindhRHSDlzIv5w8apyvybc6gjgu8yjckaTO64ebS89P\n drkg==","X-Gm-Message-State":"AOJu0YxXtFaMgs3q4UPn6IkDRT/aiKERPvaCYUZ3RfZUyYGFDp5FgSe9\n W0iqctS3f3iVbxCtl8rutU5w7gQ0VAHdj0DQ0TEqp2RrbyOFE/9ZPcVhVFK5xvdkStti+2mpDcT\n QIEVz","X-Gm-Gg":"AeBDievU+XQ37d28Px3qzghUojgQLmOvWS2dtDdo4GrrN+IKucWY6RMr86W1oWf6ms7\n gj1OG07ZqmeswFOhAre7oAxV02Xl+Gp7hGH6NAsCCbmmaZXNXNgW4v+FoPiovxjoX7PKYrbw0A3\n 1r6rq0dCRiKHztISiuYb43wAbfEEKBjPFA603JevHxqDmj0uCKbogVM7nO8LzIGm37nCIhqYs9U\n jAh7uqcuQQErPIpjDUU/HxMFir8G4Jiv/ZnAbBB0hfPsoCHQv5DP3oEX2jJfhfORH2RmevUtrpI\n oyug2LeEoBPisouTneOP/GB3MOupzRHyZZwGRKCruPzNX3vhPTEZyd+NOmhGAcEye9N0vTLnqUh\n SSynvM5qCNprXxWGYKZy7fjB1VfM14ctetfC6kE4fKTT2ei6WNA6z+cENe/nCJzqFOLXWymr96J\n jWjVi+sagJXdmJiwVAd1MGZhCKqNe/IkriBKhtv3NKMlI=","X-Received":"by 2002:a05:6102:6a94:b0:62f:3ba3:3039 with SMTP id\n ada2fe7eead31-630f8c252cemr15423137.0.1778008102176;\n Tue, 05 May 2026 12:08:22 -0700 (PDT)","From":"Adhemerval Zanella <adhemerval.zanella@linaro.org>","To":"libc-alpha@sourceware.org","Cc":"Florian Weimer <fweimer@redhat.com>,\n Daniel Henrique Barboza <dbarboza@ventanamicro.com>","Subject":"[PATCH v2 2/3] nptl: Do not always assume set_robust_list\n availability (BZ 33225)","Date":"Tue,  5 May 2026 16:06:51 -0300","Message-ID":"<20260505190809.3898686-3-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":"The __ASSUME_SET_ROBUST_LIST is used to define and set\n__nptl_set_robust_list_avail to advertise process shared robust mutex\nsupport, done at __tls_init_tp (during pthread initialization).\n\nSome specific kernel configurations and the qemu-user (for all ABIs) do\nnot implement the set_robust_list syscal.  Therefore, for the default case\n(__ASSUME_SET_ROBUST_LIST being true), the missing support is not\ndetected, and pthread_mutex_init succeeds where it should fail.  For\ninstance, the sequence succeeds on qemu-user even when set_robust_list\nfails with ENOSYS.\n\n  pthread_mutexattr_init(&attr);\n  pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);\n  pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);\n\n  pthread_mutex_init(&mutex, &attr);\n\nThis patch removes __ASSUME_SET_ROBUST_LIST and always enables\n__nptl_set_robust_list_avail detection.\n\nChecked on x86_64-linux-gnu.\n\nReported-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>\n---\n nptl/pthread_create.c                         |  4 ----\n nptl/pthread_mutex_init.c                     |  3 ---\n nptl/tst-mutexpi10.c                          |  4 +++-\n nptl/tst-robust-fork.c                        | 21 +++++++++++++++++++\n sysdeps/nptl/dl-tls_init_tp.c                 |  8 +------\n sysdeps/nptl/pthreadP.h                       |  2 --\n sysdeps/pthread/tst-robust7.c                 |  1 -\n sysdeps/pthread/tst-robust8.c                 |  6 ++++++\n sysdeps/pthread/tst-robust9.c                 |  1 -\n sysdeps/unix/sysv/linux/arm/kernel-features.h |  7 -------\n .../unix/sysv/linux/hppa/kernel-features.h    |  3 ---\n sysdeps/unix/sysv/linux/kernel-features.h     |  5 -----\n .../unix/sysv/linux/m68k/kernel-features.h    |  5 -----\n .../unix/sysv/linux/mips/kernel-features.h    |  6 ------\n .../unix/sysv/linux/riscv/kernel-features.h   |  5 -----\n .../unix/sysv/linux/sparc/kernel-features.h   |  6 ------\n 16 files changed, 31 insertions(+), 56 deletions(-)","diff":"diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c\nindex 9a0cefb0f5a..72f77d1914e 100644\n--- a/nptl/pthread_create.c\n+++ b/nptl/pthread_create.c\n@@ -386,9 +386,7 @@ start_thread (void *arg)\n       __libc_fatal (\"Fatal glibc error: rseq registration failed\\n\");\n   }\n \n-#ifndef __ASSUME_SET_ROBUST_LIST\n   if (__nptl_set_robust_list_avail)\n-#endif\n     {\n       /* This call should never fail because the initial call in init.c\n \t succeeded.  */\n@@ -536,7 +534,6 @@ start_thread (void *arg)\n   pd->exiting = true;\n   __libc_lock_unlock (pd->exit_lock);\n \n-#ifndef __ASSUME_SET_ROBUST_LIST\n   /* If this thread has any robust mutexes locked, handle them now.  */\n # if __PTHREAD_MUTEX_HAVE_PREV\n   void *robust = pd->robust_head.list;\n@@ -567,7 +564,6 @@ start_thread (void *arg)\n \t}\n       while (robust != (void *) &pd->robust_head);\n     }\n-#endif\n \n   /* Release the vDSO getrandom per-thread buffer with all signal blocked,\n      to avoid creating a new free-state block during thread release.  */\ndiff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c\nindex 8a5450bcb08..9be08332f1f 100644\n--- a/nptl/pthread_mutex_init.c\n+++ b/nptl/pthread_mutex_init.c\n@@ -93,12 +93,9 @@ ___pthread_mutex_init (pthread_mutex_t *mutex,\n \n   if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0)\n     {\n-#ifndef __ASSUME_SET_ROBUST_LIST\n       if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_PSHARED) != 0\n \t  && !__nptl_set_robust_list_avail)\n \treturn ENOTSUP;\n-#endif\n-\n       mutex_kind |= PTHREAD_MUTEX_ROBUST_NORMAL_NP;\n     }\n \ndiff --git a/nptl/tst-mutexpi10.c b/nptl/tst-mutexpi10.c\nindex 3978fb25fdf..379627e4b02 100644\n--- a/nptl/tst-mutexpi10.c\n+++ b/nptl/tst-mutexpi10.c\n@@ -58,7 +58,9 @@ do_test (void)\n \t  xpthread_mutexattr_setrobust (&attr, robust[r]);\n \n \t  pthread_mutex_t mtx;\n-\t  xpthread_mutex_init (&mtx, &attr);\n+\t  if (pthread_mutex_init (&mtx, &attr) == ENOTSUP\n+\t      && robust[r] == PTHREAD_MUTEX_ROBUST)\n+\t    continue;\n \n \t  /* Uncontended case does not trigger any futex call.  */\n \t  struct timespec tmo = timespec_add (xclock_now (clocks[c].clk),\ndiff --git a/nptl/tst-robust-fork.c b/nptl/tst-robust-fork.c\nindex be9c6d3cc41..80d76f96c14 100644\n--- a/nptl/tst-robust-fork.c\n+++ b/nptl/tst-robust-fork.c\n@@ -159,9 +159,20 @@ one_test (int parent_bits, int child_bits, int nonshared_bits,\n   xmunmap (shared, sizeof (*shared));\n }\n \n+static inline bool\n+is_robust_pshared (int bits)\n+{\n+  return (bits & (mutex_robust | mutex_pshared))\n+    == (mutex_robust | mutex_pshared);\n+}\n+\n static int\n do_test (void)\n {\n+  bool robust_support = support_process_shared_robust_mutex ();\n+  if (test_verbose)\n+    printf (\"info: robust_support=%d\\n\", robust_support);\n+\n   for (int parent_bits = 0; parent_bits <= mutex_all_bits; ++parent_bits)\n     for (int child_bits = 0; child_bits <= mutex_all_bits; ++child_bits)\n       for (int nonshared_bits = 0; nonshared_bits <= mutex_all_bits;\n@@ -175,6 +186,16 @@ do_test (void)\n                         parent_bits, child_bits, nonshared_bits,\n                         lock_nonshared ? \" lock_nonshared\" : \"\",\n                         lock_child ? \" lock_child\" : \"\");\n+\t      if ((is_robust_pshared (parent_bits)\n+\t\t   || is_robust_pshared (child_bits)\n+\t\t   || is_robust_pshared (nonshared_bits))\n+\t\t  && !robust_support)\n+\t\t{\n+\t\t  if (test_verbose)\n+\t\t    printf (\"info:   skipping tests due missing robust mutex\"\n+\t\t\t    \" support\\n\");\n+\t\t  continue;\n+\t\t}\n               one_test (parent_bits, child_bits, nonshared_bits,\n                         lock_nonshared, lock_child);\n             }\ndiff --git a/sysdeps/nptl/dl-tls_init_tp.c b/sysdeps/nptl/dl-tls_init_tp.c\nindex 72cc4087c91..75e3712a6d8 100644\n--- a/sysdeps/nptl/dl-tls_init_tp.c\n+++ b/sysdeps/nptl/dl-tls_init_tp.c\n@@ -28,10 +28,8 @@\n #define TUNABLE_NAMESPACE pthread\n #include <dl-tunables.h>\n \n-#ifndef __ASSUME_SET_ROBUST_LIST\n bool __nptl_set_robust_list_avail;\n rtld_hidden_data_def (__nptl_set_robust_list_avail)\n-#endif\n \n bool __nptl_initial_report_events;\n rtld_hidden_def (__nptl_initial_report_events)\n@@ -95,11 +93,7 @@ __tls_init_tp (void)\n     int res = INTERNAL_SYSCALL_CALL (set_robust_list, &pd->robust_head,\n                                      sizeof (struct robust_list_head));\n     if (!INTERNAL_SYSCALL_ERROR_P (res))\n-      {\n-#ifndef __ASSUME_SET_ROBUST_LIST\n-        __nptl_set_robust_list_avail = true;\n-#endif\n-      }\n+      __nptl_set_robust_list_avail = true;\n   }\n \n   {\ndiff --git a/sysdeps/nptl/pthreadP.h b/sysdeps/nptl/pthreadP.h\nindex de432d40324..c62c8982905 100644\n--- a/sysdeps/nptl/pthreadP.h\n+++ b/sysdeps/nptl/pthreadP.h\n@@ -192,12 +192,10 @@ libc_hidden_proto (__pthread_keys)\n extern unsigned int __nptl_nthreads;\n libc_hidden_proto (__nptl_nthreads)\n \n-#ifndef __ASSUME_SET_ROBUST_LIST\n /* True if the set_robust_list system call works.  Initialized in\n    __tls_init_tp.  */\n extern bool __nptl_set_robust_list_avail;\n rtld_hidden_proto (__nptl_set_robust_list_avail)\n-#endif\n \n /* Thread Priority Protection.  */\n extern int __sched_fifo_min_prio;\ndiff --git a/sysdeps/pthread/tst-robust7.c b/sysdeps/pthread/tst-robust7.c\nindex d062d3d6582..a2567d7fe08 100644\n--- a/sysdeps/pthread/tst-robust7.c\n+++ b/sysdeps/pthread/tst-robust7.c\n@@ -21,7 +21,6 @@\n #include <stdio.h>\n #include <stdlib.h>\n \n-\n static pthread_barrier_t b;\n static pthread_cond_t c = PTHREAD_COND_INITIALIZER;\n static pthread_mutex_t m;\ndiff --git a/sysdeps/pthread/tst-robust8.c b/sysdeps/pthread/tst-robust8.c\nindex 65f37feddfa..3b3ca161905 100644\n--- a/sysdeps/pthread/tst-robust8.c\n+++ b/sysdeps/pthread/tst-robust8.c\n@@ -10,6 +10,8 @@\n \n #include <pthreadP.h>\n \n+#include <support/check.h>\n+#include <support/xthread.h>\n \n \n static void prepare (void);\n@@ -143,6 +145,10 @@ child (int round)\n static int\n do_test (void)\n {\n+  /* Process shared robust mutexes requires kernel support.  */\n+  if (!support_process_shared_robust_mutex ())\n+    FAIL_UNSUPPORTED (\"process-shared robust mutexes not supported\");\n+\n   if (ftruncate (fd, N * sizeof (pthread_mutex_t)) != 0)\n     {\n       puts (\"cannot size new file\");\ndiff --git a/sysdeps/pthread/tst-robust9.c b/sysdeps/pthread/tst-robust9.c\nindex ca24f24282f..99b6abbc86b 100644\n--- a/sysdeps/pthread/tst-robust9.c\n+++ b/sysdeps/pthread/tst-robust9.c\n@@ -5,7 +5,6 @@\n #include <unistd.h>\n #include <sys/time.h>\n \n-\n static pthread_mutex_t m;\n \n static void *\ndiff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h\nindex d169bf58946..1511de1c843 100644\n--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h\n@@ -20,13 +20,6 @@\n #include <endian.h>\n #include_next <kernel-features.h>\n \n-/* The ARM kernel before 3.14.3 may or may not support\n-   futex_atomic_cmpxchg_inatomic, depending on kernel\n-   configuration.  */\n-#if __LINUX_KERNEL_VERSION < 0x030E03\n-# undef __ASSUME_SET_ROBUST_LIST\n-#endif\n-\n /* ARM fadvise64_64 reorganize the syscall arguments.  */\n #define __ASSUME_FADVISE64_64_6ARG\t1\n \ndiff --git a/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h\nindex 1b46336e4a0..45ef64bb1f9 100644\n--- a/sysdeps/unix/sysv/linux/hppa/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/hppa/kernel-features.h\n@@ -30,6 +30,3 @@\n \n #undef __ASSUME_CLONE_DEFAULT\n #define __ASSUME_CLONE_BACKWARDS 1\n-\n-/* QEMU does not support set_robust_list.  */\n-#undef __ASSUME_SET_ROBUST_LIST\ndiff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h\nindex 85f6e888dba..33f3c2d2c58 100644\n--- a/sysdeps/unix/sysv/linux/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/kernel-features.h\n@@ -49,11 +49,6 @@\n    SH this appeared first in 2.6.19-rc1.  */\n #define __ASSUME_PSELECT\t1\n \n-/* Support for inter-process robust mutexes was added in 2.6.17 (but\n-   some architectures lack futex_atomic_cmpxchg_inatomic in some\n-   configurations).  */\n-#define __ASSUME_SET_ROBUST_LIST\t1\n-\n /* The termios2 interface was introduced across all architectures except\n    Alpha in kernel 2.6.22. */\n #define __ASSUME_TERMIOS2\t1\ndiff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h\nindex d66fe16fa8d..db90d8a8c07 100644\n--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h\n@@ -42,11 +42,6 @@\n # undef __ASSUME_GETPEERNAME_SYSCALL\n #endif\n \n-/* No support for PI futexes or robust mutexes before 3.10 for m68k.  */\n-#if __LINUX_KERNEL_VERSION < 0x030a00\n-# undef __ASSUME_SET_ROBUST_LIST\n-#endif\n-\n /* m68k only supports ipc syscall before 5.1.  */\n #if __LINUX_KERNEL_VERSION < 0x050100\n # undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS\ndiff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h\nindex 7790f0d14b5..0d30d4d8284 100644\n--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h\n@@ -21,12 +21,6 @@\n \n #include_next <kernel-features.h>\n \n-/* The MIPS kernel does not support futex_atomic_cmpxchg_inatomic if\n-   emulating LL/SC.  */\n-#if __mips == 1 || defined _MIPS_ARCH_R5900\n-# undef __ASSUME_SET_ROBUST_LIST\n-#endif\n-\n /* Define this if your 32-bit syscall API requires 64-bit register\n    pairs to start with an even-number register.  */\n #if _MIPS_SIM == _ABIO32\ndiff --git a/sysdeps/unix/sysv/linux/riscv/kernel-features.h b/sysdeps/unix/sysv/linux/riscv/kernel-features.h\nindex 32087c0602c..9172373e989 100644\n--- a/sysdeps/unix/sysv/linux/riscv/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/riscv/kernel-features.h\n@@ -21,8 +21,3 @@\n \n #undef __ASSUME_CLONE_DEFAULT\n #define __ASSUME_CLONE_BACKWARDS 1\n-\n-/* No support for PI mutexes or robust futexes before 4.20.  */\n-#if __LINUX_KERNEL_VERSION < 0x041400\n-# undef __ASSUME_SET_ROBUST_LIST\n-#endif\ndiff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h\nindex eb293411135..dad512cec35 100644\n--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h\n+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h\n@@ -19,12 +19,6 @@\n \n #include_next <kernel-features.h>\n \n-/* 32-bit SPARC kernels do not support\n-   futex_atomic_cmpxchg_inatomic.  */\n-#if !defined __arch64__ && !defined __sparc_v9__\n-# undef __ASSUME_SET_ROBUST_LIST\n-#endif\n-\n /* These syscalls were added for 32-bit in 4.4 (but present for 64-bit\n    in all supported kernel versions); the architecture-independent\n    kernel-features.h assumes some of them to be present by default.\n","prefixes":["v2","2/3"]}