Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2233153/?format=api
{ "id": 2233153, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2233153/?format=api", "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=api", "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=api", "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=api", "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" ] }