From patchwork Mon Jun 30 19:04:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 115337 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5064C3854ABE for ; Mon, 30 Jun 2025 19:06:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5064C3854ABE Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=OBdcxoFe X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) by sourceware.org (Postfix) with ESMTPS id 7F1CD385DDD8 for ; Mon, 30 Jun 2025 19:05:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7F1CD385DDD8 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7F1CD385DDD8 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::833 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1751310322; cv=none; b=q0H1mabavVQXreC8iV9r1uAzO+UFFKnUrkF3Y+GWP7e52kjPFFFgbdhP08unwe/rHwJzn9AGzEkCgHWkayB9X1jK7+aDoyGwxV994RqN0+fOufC+7M4jXaAsd8uuYG3L+b1ZqP3s/j4qUJdrk8ytAimdDQngqSIESZp8Mn9Xr+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1751310322; c=relaxed/simple; bh=c285eJyIhLl7e4mZEbpzk9o4YE15zGebZjOr+gKLDYU=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=SAFqeX2BWU2z4Zac8fIyyRMOuXKC8mo33GZ8hxLxp0yOUGUozMlwPUFHpUL9dqdqnRI6osFYZrgLUZ7YjdKhIUsItDNMxqY2qIGcYaCPp0erhJgd8cH5K79uTDIanqMPAwsJTQwRC2fRJYUaQKiFY/dc6hGIpkzpoOX8N2mMxCg= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7F1CD385DDD8 Received: by mail-qt1-x833.google.com with SMTP id d75a77b69052e-4a58c2430edso52046521cf.1 for ; Mon, 30 Jun 2025 12:05:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1751310321; x=1751915121; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=n/ivety4zrgk4b+nM4VBbc0bYELWlQgw5or4++OF9WA=; b=OBdcxoFeJOn1IdubERHYiSy9CqNdaCXoTsAo+O7iaK+YwZau7LRNo7EvV5YQBIIG71 0tAdcdfFmRFnNbVsdH8xyKtONrXr8LifIYniIs7agWxBAYFvBDlxRn0dXT5NneyKghn+ MMOCUqRoHsufwc8JWbUynIQwOcsHZ/Q1pg3mb3QIVf1EoFvcYefdWh0UXz7GjsKt6l60 yeBJKH+pQFYuS/YWc7oiC+MHG01kaQIYPiUp6hmfgK0ljBstEAVzPn3ymrGO8bGdKHoz Cnx0N13IW6sBNv9PWINzZMlMGAXAbUaLj0B5NsvFaTbUId0KOMQXVZPg2Nku1jvk4xOJ Op8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751310321; x=1751915121; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=n/ivety4zrgk4b+nM4VBbc0bYELWlQgw5or4++OF9WA=; b=vqP++2pXYMXtOG8bkL1vHLD8BnpgWxnp8xaYj99o1UKXKf//CSybBsSIwcLS0P4fDH kwrI8x1P4JOE3blPXbm6SbZvF9reO5U12yyiI95rUIGKfSpwmLxQQRvVm1PtPRHqdV1t jceZ5/xV3snCRS9aIZhD5LBX3QBj8UTMJFM4Gvj0jRccr2pREpIzGM/gXg6oasj+iqHh XAV/F8aCuGcgGbOTHQ1e+oPHexO9oNv8pN0cXkYpLIESgBh70hiDWArQzbJsmNgq9qYK X6B3OKNxktlWvwwQoVAAsyZePax4lCF7aGnZ51ZGFYdTMqTcCSqZ0xVqMYAfabP8JicJ vD0w== X-Gm-Message-State: AOJu0YwlrggIo8kd6PPN74tRIIO/86K3+SLCj6wFVbymlOqKPIZmGTZh LzjushUiskpHNHuy8eeLIeI1V89LlQisKKToYP1rpBiOtf8IMnwWCPOdblngvw4yEwTKG54uQ1W 6c0Dq X-Gm-Gg: ASbGncvVzqS9iP/CMtBpW0lsc/YzXmJobW3hOiLsgr1F60D6uvIQBuAPspgKGGFrnPM /E+LyGLuyFPnI8XCjvtQaF/mxsIXA1gcbAPOAC869o7WHiCan8mLPZf9oUZdoF4rK+cZ+gNLs56 +YRv4sU1AMlkJEUlD+B/UNcwKeYLyuq4xWM4A/2JMcOx1NOUiN7fb34RG1GR+ZF1GSWfwYHAskQ rfhxK5OwH376V7/gopOoOsh99EI1vQxzP1I7/6IEpNaN7RKHRimLmmzlnXur7+FZKgAYhGRhhvE HOSZz32mslm3R6aOXT+8Lalg5N00Fu516gcqdmZBaAmGq1tHSobibYNPlTyzbYKOdRFiVMzye7x Tdk5PnJIQVVBhkfXEwo+M5QDsc20bIhE7nJAmDA== X-Google-Smtp-Source: AGHT+IG7R8RD+grPuqf8vy0pE+KpasGn4gxE7meJJGg7jIqNR9hbBVyNJYgrPvegjGqYjWM0W5KJQw== X-Received: by 2002:a05:622a:424c:b0:494:7043:8a2 with SMTP id d75a77b69052e-4a82eab42c4mr12944001cf.16.1751310320702; Mon, 30 Jun 2025 12:05:20 -0700 (PDT) Received: from ubuntu-vm.. (200-153-192-226.dsl.telesp.net.br. [200.153.192.226]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4a7fc13971fsm64058481cf.20.2025.06.30.12.05.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 12:05:20 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: Wilco Dijkstra Subject: [PATCH v4] stdlib: Consolidate getentropy and adapt to POSIX 2024 semantics Date: Mon, 30 Jun 2025 16:04:41 -0300 Message-ID: <20250630190515.1041780-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org POSIX.1-2024 added getentropy with some slight different semantics, where buffer larger than 256 (GETENTROPY_MAX) should return EINVAL insted of EIO. So a a new compat symbol is added to return EIO for large buffer, and if no entropy could ge obtained from __getrandom_nocancel. This patch does not move getentropy definition to unistd.h nor add GETENTROPY_MAX on limits.h, since glibc still does not have a preprocessor handling for POSIX 2024. The consolidation uses __getrandom_nocancel, which might uses the vDSO implementation if supported. Checked on x86_64-linux-gnu. --- Changes from v3: * Rebase against master. --- NEWS | 3 + manual/crypt.texi | 2 +- stdlib/Makefile | 8 ++ stdlib/Versions | 1 + stdlib/getentropy.c | 59 +++++++++- stdlib/tst-getentropy-compat.c | 26 +++++ stdlib/tst-getentropy.c | 108 ++++++++++++++++++ stdlib/tst-getrandom.c | 71 +----------- sysdeps/mach/hurd/getentropy.c | 59 ---------- sysdeps/mach/hurd/i386/libc.abilist | 3 +- sysdeps/mach/hurd/x86_64/libc.abilist | 1 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arc/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/csky/libc.abilist | 1 + sysdeps/unix/sysv/linux/getentropy.c | 65 ----------- sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + .../sysv/linux/loongarch/lp64/libc.abilist | 1 + .../sysv/linux/m68k/coldfire/libc.abilist | 1 + .../unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + .../sysv/linux/microblaze/be/libc.abilist | 1 + .../sysv/linux/microblaze/le/libc.abilist | 1 + .../sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/or1k/libc.abilist | 1 + .../linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../powerpc/powerpc32/nofpu/libc.abilist | 1 + .../linux/powerpc/powerpc64/be/libc.abilist | 1 + .../linux/powerpc/powerpc64/le/libc.abilist | 1 + .../unix/sysv/linux/riscv/rv32/libc.abilist | 1 + .../unix/sysv/linux/riscv/rv64/libc.abilist | 1 + .../unix/sysv/linux/s390/s390-32/libc.abilist | 1 + .../unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 + .../sysv/linux/sparc/sparc32/libc.abilist | 1 + .../sysv/linux/sparc/sparc64/libc.abilist | 1 + .../unix/sysv/linux/x86_64/64/libc.abilist | 1 + .../unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 43 files changed, 236 insertions(+), 201 deletions(-) create mode 100644 stdlib/tst-getentropy-compat.c create mode 100644 stdlib/tst-getentropy.c delete mode 100644 sysdeps/mach/hurd/getentropy.c delete mode 100644 sysdeps/unix/sysv/linux/getentropy.c diff --git a/NEWS b/NEWS index cc668344c1..247971ab28 100644 --- a/NEWS +++ b/NEWS @@ -37,6 +37,9 @@ Deprecated and removed features, and other changes affecting compatibility: obsolete since the very first version of POSIX.1 in 1988, replaced with . +* The getentropy function now follows POSIX 2024, which means that + unsupportd large buffer will return EINVAL instead of EIO. + Changes to build and runtime requirements: * GCC 12.1 or later is now required to build the GNU C Library. diff --git a/manual/crypt.texi b/manual/crypt.texi index 4882ee34e5..ce68f2853a 100644 --- a/manual/crypt.texi +++ b/manual/crypt.texi @@ -73,7 +73,7 @@ used by this function was added to the Linux kernel in version 3.17.) The combination of @var{buffer} and @var{length} arguments specifies an invalid memory range. -@item EIO +@item EINVAL @var{length} is larger than 256, or the kernel entropy pool has suffered a catastrophic failure. @end table diff --git a/stdlib/Makefile b/stdlib/Makefile index 1c80e497f0..831247d16a 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -284,6 +284,7 @@ tests := \ tst-environ-change-2 \ tst-environ-change-3 \ tst-environ-change-4 \ + tst-getentropy \ tst-getenv-signal \ tst-getenv-static \ tst-getenv-thread \ @@ -401,6 +402,13 @@ tests += \ # tests endif +# Test for the getentropy symbol versions required for POSIX 2024 +ifeq ($(have-GLIBC_2.42)$(build-shared),yesyes) +tests += \ + tst-getentropy-compat \ + # tests +endif + LDLIBS-test-atexit-race = $(shared-thread-library) LDLIBS-test-at_quick_exit-race = $(shared-thread-library) LDLIBS-test-cxa_atexit-race = $(shared-thread-library) diff --git a/stdlib/Versions b/stdlib/Versions index 6d024000f8..66e61e1441 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -224,6 +224,7 @@ libc { stdc_bit_ceil_ull; } GLIBC_2.42 { + getentropy; uabs; uimaxabs; ulabs; diff --git a/stdlib/getentropy.c b/stdlib/getentropy.c index 5149fbdde0..dfc48168f1 100644 --- a/stdlib/getentropy.c +++ b/stdlib/getentropy.c @@ -16,16 +16,65 @@ License along with the GNU C Library; if not, see . */ -#include +#include #include +#include +#include +#include /* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on success and -1 on failure. */ +static int +getentropy_base (void *buffer, size_t length, int err) +{ + if (length > 256) + { + __set_errno (err); + return -1; + } + + /* Try to fill the buffer completely. Even with the 256 byte limit + above, we might still receive an EINTR error (when blocking + during boot). */ + void *end = buffer + length; + while (buffer < end) + { + /* NB: No cancellation point. */ + ssize_t bytes = __getrandom_nocancel (buffer, end - buffer, 0); + if (bytes < 0) + { + if (errno == EINTR) + /* Try again if interrupted by a signal. */ + continue; + else + return -1; + } + else if (bytes == 0) + /* No more bytes available. This should not happen under normal + circumstances. */ + { + __set_errno (err); + return -1; + } + + /* Try again in case of a short read. */ + buffer += bytes; + } + return 0; +} + int -getentropy (void *buffer, size_t length) +__new_getentropy (void *buffer, size_t length) { - __set_errno (ENOSYS); - return -1; + return getentropy_base (buffer, length, EINVAL); } +versioned_symbol (libc, __new_getentropy, getentropy, GLIBC_2_42); -stub_warning (getentropy) +#if SHLIB_COMPAT (libc, GLIBC_2_25, GLIBC_2_42) +int +__old_getentropy (void *buffer, size_t length) +{ + return getentropy_base (buffer, length, EIO); +} +compat_symbol (libc, __old_getentropy, getentropy, GLIBC_2_25); +#endif diff --git a/stdlib/tst-getentropy-compat.c b/stdlib/tst-getentropy-compat.c new file mode 100644 index 0000000000..388edda7e0 --- /dev/null +++ b/stdlib/tst-getentropy-compat.c @@ -0,0 +1,26 @@ +/* Compat tests for the getentropy function. + Copyright (C) 2016-2025 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +#include + +compat_symbol_reference (libc, getentropy, getentropy, GLIBC_2_25); + +#define ERRNO_BUFFER_TO_LARGE EIO +#include "tst-getentropy.c" diff --git a/stdlib/tst-getentropy.c b/stdlib/tst-getentropy.c new file mode 100644 index 0000000000..eef57fca2c --- /dev/null +++ b/stdlib/tst-getentropy.c @@ -0,0 +1,108 @@ +/* Tests for the getentropy function. + Copyright (C) 2016-2025 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include + +#ifndef ERRNO_BUFFER_TO_LARGE +# define ERRNO_BUFFER_TO_LARGE EINVAL +#endif + +/* Set to true if any errors are encountered. */ +static bool errors; + +static void +test_getentropy (void) +{ + char buf[16]; + memset (buf, '@', sizeof (buf)); + if (getentropy (buf, 0) != 0) + { + printf ("error: getentropy zero length: %m\n"); + errors = true; + return; + } + for (size_t i = 0; i < sizeof (buf); ++i) + if (buf[i] != '@') + { + printf ("error: getentropy modified zero-length buffer\n"); + errors = true; + return; + } + + if (getentropy (buf, sizeof (buf)) != 0) + { + printf ("error: getentropy buf: %m\n"); + errors = true; + return; + } + + char buf2[256]; + _Static_assert (sizeof (buf) < sizeof (buf2), "buf and buf2 compatible"); + memset (buf2, '@', sizeof (buf2)); + if (getentropy (buf2, sizeof (buf)) != 0) + { + printf ("error: getentropy buf2: %m\n"); + errors = true; + return; + } + + /* The probability that these two buffers are equal is very + small. */ + if (memcmp (buf, buf2, sizeof (buf)) == 0) + { + printf ("error: getentropy appears to return constant bytes\n"); + errors = true; + return; + } + + for (size_t i = sizeof (buf); i < sizeof (buf2); ++i) + if (buf2[i] != '@') + { + printf ("error: getentropy wrote beyond the end of the buffer\n"); + errors = true; + return; + } + + char buf3[257]; + if (getentropy (buf3, sizeof (buf3)) == 0) + { + printf ("error: getentropy successful for 257 byte buffer\n"); + errors = true; + return; + } + if (errno != ERRNO_BUFFER_TO_LARGE) + { + printf ("error: getentropy wrong error for 257 byte buffer: %m\n"); + errors = true; + return; + } +} + +static int +do_test (void) +{ + test_getentropy (); + + return errors; +} + +#include diff --git a/stdlib/tst-getrandom.c b/stdlib/tst-getrandom.c index 3b2153376b..e8b3392db5 100644 --- a/stdlib/tst-getrandom.c +++ b/stdlib/tst-getrandom.c @@ -1,4 +1,4 @@ -/* Tests for the getentropy, getrandom functions. +/* Tests for the getrandom functions. Copyright (C) 2016-2025 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -151,73 +151,6 @@ test_flags (unsigned int flags) } } -static void -test_getentropy (void) -{ - char buf[16]; - memset (buf, '@', sizeof (buf)); - if (getentropy (buf, 0) != 0) - { - printf ("error: getentropy zero length: %m\n"); - errors = true; - return; - } - for (size_t i = 0; i < sizeof (buf); ++i) - if (buf[i] != '@') - { - printf ("error: getentropy modified zero-length buffer\n"); - errors = true; - return; - } - - if (getentropy (buf, sizeof (buf)) != 0) - { - printf ("error: getentropy buf: %m\n"); - errors = true; - return; - } - - char buf2[256]; - _Static_assert (sizeof (buf) < sizeof (buf2), "buf and buf2 compatible"); - memset (buf2, '@', sizeof (buf2)); - if (getentropy (buf2, sizeof (buf)) != 0) - { - printf ("error: getentropy buf2: %m\n"); - errors = true; - return; - } - - /* The probability that these two buffers are equal is very - small. */ - if (memcmp (buf, buf2, sizeof (buf)) == 0) - { - printf ("error: getentropy appears to return constant bytes\n"); - errors = true; - return; - } - - for (size_t i = sizeof (buf); i < sizeof (buf2); ++i) - if (buf2[i] != '@') - { - printf ("error: getentropy wrote beyond the end of the buffer\n"); - errors = true; - return; - } - - char buf3[257]; - if (getentropy (buf3, sizeof (buf3)) == 0) - { - printf ("error: getentropy successful for 257 byte buffer\n"); - errors = true; - return; - } - if (errno != EIO) - { - printf ("error: getentropy wrong error for 257 byte buffer: %m\n"); - errors = true; - return; - } -} static int do_test (void) @@ -237,8 +170,6 @@ do_test (void) test_flags (flags); } - test_getentropy (); - return errors; } diff --git a/sysdeps/mach/hurd/getentropy.c b/sysdeps/mach/hurd/getentropy.c deleted file mode 100644 index 6ad8acc773..0000000000 --- a/sysdeps/mach/hurd/getentropy.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Implementation of getentropy based on getrandom. - Copyright (C) 2016-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include - -/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on - success and -1 on failure. */ -int -getentropy (void *buffer, size_t length) -{ - /* The interface is documented to return EIO for buffer lengths - longer than 256 bytes. */ - if (length > 256) - return __hurd_fail (EIO); - - /* Try to fill the buffer completely. Even with the 256 byte limit - above, we might still receive an EINTR error (when blocking - during boot). */ - void *end = buffer + length; - while (buffer < end) - { - /* NB: No cancellation point. */ - ssize_t bytes = __getrandom (buffer, end - buffer, 0); - if (bytes < 0) - { - if (errno == EINTR) - /* Try again if interrupted by a signal. */ - continue; - else - return -1; - } - if (bytes == 0) - /* No more bytes available. This should not happen under - normal circumstances. */ - return __hurd_fail (EIO); - /* Try again in case of a short read. */ - buffer += bytes; - } - return 0; -} diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index a0e686afc7..c4d7a362ff 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -691,7 +691,7 @@ GLIBC_2.2.6 _libc_intl_domainname D 0x5 GLIBC_2.2.6 _longjmp F GLIBC_2.2.6 _mcleanup F GLIBC_2.2.6 _mcount F -GLIBC_2.2.6 _nl_default_dirname D 0xe +GLIBC_2.2.6 _nl_default_dirname D 0x12 GLIBC_2.2.6 _nl_domain_bindings D 0x4 GLIBC_2.2.6 _nl_msg_cat_cntr D 0x4 GLIBC_2.2.6 _null_auth D 0xc @@ -2596,6 +2596,7 @@ GLIBC_2.42 cfgetobaud F GLIBC_2.42 cfsetbaud F GLIBC_2.42 cfsetibaud F GLIBC_2.42 cfsetobaud F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_barrier_destroy F GLIBC_2.42 pthread_barrier_init F GLIBC_2.42 pthread_barrier_wait F diff --git a/sysdeps/mach/hurd/x86_64/libc.abilist b/sysdeps/mach/hurd/x86_64/libc.abilist index 8f9d6aa842..74d0abae04 100644 --- a/sysdeps/mach/hurd/x86_64/libc.abilist +++ b/sysdeps/mach/hurd/x86_64/libc.abilist @@ -2279,6 +2279,7 @@ GLIBC_2.42 cfgetobaud F GLIBC_2.42 cfsetbaud F GLIBC_2.42 cfsetibaud F GLIBC_2.42 cfsetobaud F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_barrier_destroy F GLIBC_2.42 pthread_barrier_init F GLIBC_2.42 pthread_barrier_wait F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index a22e651432..537d73651d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2762,6 +2762,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 4b5736a3b6..3ce173bf6c 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -3109,6 +3109,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist index b8a44784bd..dd9bb7b643 100644 --- a/sysdeps/unix/sysv/linux/arc/libc.abilist +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -2523,6 +2523,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index 959e44672f..82b837c530 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -2815,6 +2815,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index a930d1a52b..d27c11ce96 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -2812,6 +2812,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist index 6325fc12c4..17741a5d04 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2799,6 +2799,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/getentropy.c b/sysdeps/unix/sysv/linux/getentropy.c deleted file mode 100644 index a62c9fb099..0000000000 --- a/sysdeps/unix/sysv/linux/getentropy.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Implementation of getentropy based on the getrandom system call. - Copyright (C) 2016-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include - -/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on - success and -1 on failure. */ -int -getentropy (void *buffer, size_t length) -{ - /* The interface is documented to return EIO for buffer lengths - longer than 256 bytes. */ - if (length > 256) - { - __set_errno (EIO); - return -1; - } - - /* Try to fill the buffer completely. Even with the 256 byte limit - above, we might still receive an EINTR error (when blocking - during boot). */ - void *end = buffer + length; - while (buffer < end) - { - /* NB: No cancellation point. */ - ssize_t bytes = INLINE_SYSCALL_CALL (getrandom, buffer, end - buffer, 0); - if (bytes < 0) - { - if (errno == EINTR) - /* Try again if interrupted by a signal. */ - continue; - else - return -1; - } - if (bytes == 0) - { - /* No more bytes available. This should not happen under - normal circumstances. */ - __set_errno (EIO); - return -1; - } - /* Try again in case of a short read. */ - buffer += bytes; - } - return 0; -} diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 86b3fbdeec..e9470e2f90 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2836,6 +2836,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 6555592d86..a697aeb59b 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -3019,6 +3019,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist index a6cab9612a..a957672bfb 100644 --- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist +++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist @@ -2283,6 +2283,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 7b7b72aa50..ad1691b238 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -2795,6 +2795,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index df398e43c6..d4b18b7566 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2962,6 +2962,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index ca8df6f4b0..5e8d41d6e7 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2848,6 +2848,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index 9508154847..a1fe19d48c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2845,6 +2845,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 4d51cc428f..b01f996dc1 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2923,6 +2923,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 tcgetattr F GLIBC_2.42 tcsetattr F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index fc366d1bd0..ff3cfe93de 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2929,6 +2929,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 tcgetattr F GLIBC_2.42 tcsetattr F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index debd5c37c9..8967754bbe 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2831,6 +2831,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 tcgetattr F GLIBC_2.42 tcsetattr F diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist index b62d59f1af..2c6e5dd58c 100644 --- a/sysdeps/unix/sysv/linux/or1k/libc.abilist +++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist @@ -2273,6 +2273,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 883e66f3ae..ac69ec6019 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -3152,6 +3152,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 84cd9e0e18..d5ce994fc5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -3197,6 +3197,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index 8832568ab3..ae22201755 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -2906,6 +2906,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index b6ff8016e4..fb580580cf 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2982,6 +2982,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist index 1771a2370c..d339b68c85 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist @@ -2526,6 +2526,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 4b48352fd9..917f61e4d7 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2726,6 +2726,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index f0decc787b..bc8a541fb8 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -3150,6 +3150,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index da8a2bfb74..0b2bdff6eb 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2943,6 +2943,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index fb30341894..8137bcde8e 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2842,6 +2842,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index d716673432..dd83030858 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2839,6 +2839,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 6deedf216d..10191fa40e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -3171,6 +3171,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 tcgetattr F GLIBC_2.42 tcsetattr F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 1ce22bf036..b895aa33f3 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2807,6 +2807,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 tcgetattr F GLIBC_2.42 tcsetattr F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 564877250b..f42fbbf77c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2758,6 +2758,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 25a39d0943..82ac039f47 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2777,6 +2777,7 @@ GLIBC_2.42 cfsetispeed F GLIBC_2.42 cfsetobaud F GLIBC_2.42 cfsetospeed F GLIBC_2.42 cfsetspeed F +GLIBC_2.42 getentropy F GLIBC_2.42 pthread_gettid_np F GLIBC_2.42 uabs F GLIBC_2.42 uimaxabs F