From patchwork Mon Apr 23 22:36:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 134029 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp1531885lji; Mon, 23 Apr 2018 15:37:30 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+57r7XZqNWk9i+RGXDHoIm8rO4hbyYNIJPJrkeAexsd0K5hbO3Rvax6a4WR+yRgHOErcMx X-Received: by 10.98.104.199 with SMTP id d190mr21360029pfc.111.1524523050674; Mon, 23 Apr 2018 15:37:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524523050; cv=none; d=google.com; s=arc-20160816; b=0HQqT/o8cDZaQfjNnX/hbByyVA9D0jMaTdA5l/oxpdVkrigGp/VfoLuJq/+AzMHnT/ yPbUpbH6Ji9MGwfLUh4BIHyc7cf7xR6TwEwDj0oJK0GrApmztm/IqLGr2sC/m3+2VPsq G/o0qe+Fv+BEmkrApSc51ZZ+m7AC0OIXeOalVZ8hQClstiuI2eBK/YJbSt22zNT6+zT4 3Xi8lST59ObkaL+xQpFu3x1xCQ6nAKGAcuUC5lZxTOMdqnY2iS1zRgAMh9jpjVoIw8uy 3zMMhuTZ9oKdeuxEB7myWryaM5UDgq+GRW2suwNLhSoNqH8TWfSR8izwOAOyjpCIAR/F K+Yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:to:from:delivered-to:sender:list-help :list-post:list-archive:list-subscribe:list-unsubscribe:list-id :precedence:mailing-list:dkim-signature:domainkey-signature :arc-authentication-results; bh=1A/1fizJfRlfWP4qFe34fTggwO6Z0e36HQ9u56yioFo=; b=AxpgCNh9Fv+IOvYViVciK4T9AqVPcew7aYRQITcdlbgake1nzwGfa23mL1o+KeKqWq KFN5EQkmK8v1tlOMYnd6MSmq86XUS3CaBRSqbNDDSKD8MTupjveJeBRAJ2LT6lYgF/F1 akVz2sBdIUqv8ep6cdigFnL5QPZfFgPv7FNiStB7NabAgSbJSsImEZURK7P13Z3TwkB7 v215/EEVgERrIum6UiQA5BDU0ao2VM5bPbz2WXmWNlZcNI3hQkXzKRsGkk93YC0O6Stz A27tWxao5HlqifNOqW4nb8Y0BnGy5NlsdeGADJ9xJ6M1iTcU/eISGZupNYQ4ftam87fT 6UjA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=FUYhyuGo; spf=pass (google.com: domain of libc-alpha-return-91790-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-91790-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id z23-v6si12917925plo.597.2018.04.23.15.37.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Apr 2018 15:37:30 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-91790-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=FUYhyuGo; spf=pass (google.com: domain of libc-alpha-return-91790-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-91790-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; q=dns; s= default; b=kx2IHNiwzw9Fg9jOFxrD6Hp3UZAmmXcjRRv0MJx7si3crzRvKRI81 qmsMg9e481mV9fMwYTaGMjrPOgTXtV/19DVbL52UJajMQk2LJKOsdwetH9sA94kl R/wWyDTD/slw3epcDq9a7oIXBZ1agqkhBm9ay/pA0LfTy3cPFT5iB4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; s=default; bh=PnQ0LsmjtMjr0vG5VK7YcNFniBs=; b=FUYhyuGoiTA3XYzeg8EVvh5hzA8G 7WTwVX2Ia2CVvzIB3ek0V1SAYbcfBgFlpQfSuPUM9gklLVoay493KgGryYJlw8tV DjzRwWqzqSRA1kGkOxUa3Rbe1MXGJveKb8PpNDApOniUB1xWnMh67t9IMs5Z2v+I CxDpF7KmARvqi/Q= Received: (qmail 34345 invoked by alias); 23 Apr 2018 22:37:11 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 34307 invoked by uid 89); 23 Apr 2018 22:37:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=articles, issuing, Articles X-HELO: mail-qk0-f196.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=1A/1fizJfRlfWP4qFe34fTggwO6Z0e36HQ9u56yioFo=; b=cj6gqw8Opgh+HUkJZxFbkHBc55MWyI9b6hZhxh0BxroEggpgX2RDwOokU4QrpkkRZA +broZ+dkNtzVdMar70/RNOYRlPNp2+8kOyT4pbxT4T+gSaqyFOFeMffH8QQaZEewpVgH txmjALjak0SfmqtE7kLhevMJUnoABBurviqMGlEYUZgqy0zDEbQvV4tuZLiKqp4ypRPj isqufxc8Xm7yD+pMNWhxusZGPQFWjwAVdp0nRRd5L2FF7JTs9UHMQcHpCf9cy9vBFqhI hw24ZN4QqgU9xu5dFTOSJmFwOw2lM4tFJo8tBAG+dG/umG7/RRbZB5r12knweTRWs+b+ yj+Q== X-Gm-Message-State: ALQs6tBrEPLdwRVLCjv/K5DHxhks3g8dxTeS35u8uTtRg6lx50F0G++2 Ny4OrS4Q8mcMpk7U3w1Mzh0xeMFUMkQ= X-Received: by 10.55.35.202 with SMTP id j193mr15004120qkj.196.1524523023647; Mon, 23 Apr 2018 15:37:03 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 1/2] Deprecate sysctl syscall interface Date: Mon, 23 Apr 2018 19:36:57 -0300 Message-Id: <1524523018-7216-1-git-send-email-adhemerval.zanella@linaro.org> The sysctl syscall has been long deprecated [1] (since Linux 2.6.24) with its usage issues a kernel warning stating it. Also on GLIBC new portsi, which uses generic syscall interface, builds a stub version that returns ENOSYS (so new ports should not rely on it anyway and some kernel config do disable it by not setting CONFIG_SYSCTL_SYSCALL). Every interface is directly accessed through /proc/sys and the only real case scanarion I am aware is to have a fail-proof way to gather entropy in cases where /dev/urandom or /proc is not available. However, as noted previously, this is quite fragile (new ports do not provide it) and GLIBC now provides getentropy to this specific case (although it is only supported on Linux 3.17). If sysctl is stricly required, it still can be issues through syscall(). This patch deprecate sysctl interface by issuing ENOSYS as default and adds compat symbol for architectures which still defines __NR_sysctl. Checked on x86_64-linux-gnu and i686-linux-gnu. Also checked with a check-abi on all affected ABIs. * sysdeps/unix/sysv/linux/arm/ioperm.c (sysctl_call): New function. (init_iosys): Call syscall_call instead of sysctl. * sysdeps/unix/sysv/linux/generic/sysctl.c: Remove file. * sysdeps/unix/sysv/linux/sysctl.c: New file. * sysdeps/unix/sysv/linux/alpha/Versions [GLIBC_2.28] (sysctl): New symbol. * sysdeps/unix/sysv/linux/arm/Versions: Likewise. * sysdeps/unix/sysv/linux/i386/Versions: Likewise. * sysdeps/unix/sysv/linux/hppa/Versions:iLikewise. * sysdeps/unix/sysv/linux/ia64/Versions: Likewise. * sysdeps/unix/sysv/linux/powerpc/Versions: Likewise. * sysdeps/unix/sysv/linux/m68k/Versions: Likewise. * sysdeps/unix/sysv/linux/microblaze/Versions: Likewise. * sysdeps/unix/sysv/linux/mips/Versions: Likewise. * sysdeps/unix/sysv/linux/s390/Versions: Likewise. * sysdeps/unix/sysv/linux/sh/Versions: Likewise. * sysdeps/unix/sysv/linux/sparc/Versions: Likewise. * sysdeps/unix/sysv/linux/x86_64/Versions: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. [1] https://lwn.net/Articles/247243/ --- ChangeLog | 44 ++++++++++++++++++++++ sysdeps/unix/sysv/linux/alpha/Versions | 3 ++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + sysdeps/unix/sysv/linux/arm/Versions | 3 ++ sysdeps/unix/sysv/linux/arm/ioperm.c | 21 ++++++++++- sysdeps/unix/sysv/linux/arm/libc.abilist | 2 + sysdeps/unix/sysv/linux/generic/sysctl.c | 32 ---------------- sysdeps/unix/sysv/linux/hppa/Versions | 3 ++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + sysdeps/unix/sysv/linux/i386/Versions | 3 ++ sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + sysdeps/unix/sysv/linux/ia64/Versions | 3 ++ sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/Versions | 3 ++ sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + sysdeps/unix/sysv/linux/microblaze/Versions | 3 ++ sysdeps/unix/sysv/linux/microblaze/libc.abilist | 2 + sysdeps/unix/sysv/linux/mips/Versions | 3 ++ .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 + sysdeps/unix/sysv/linux/powerpc/Versions | 3 ++ .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 2 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/Versions | 3 ++ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 + sysdeps/unix/sysv/linux/sh/Versions | 3 ++ sysdeps/unix/sysv/linux/sh/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/Versions | 3 ++ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 + sysdeps/unix/sysv/linux/sysctl.c | 44 ++++++++++++++++------ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/Versions | 3 ++ sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 40 files changed, 180 insertions(+), 45 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/generic/sysctl.c -- 2.7.4 diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions index 3b7971c..da8b0c1 100644 --- a/sysdeps/unix/sysv/linux/alpha/Versions +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -88,6 +88,9 @@ libc { GLIBC_2.27 { getrlimit; setrlimit; getrlimit64; setrlimit64; } + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { __libc_alpha_cache_shape; } diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 8674a87..09fc772 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2054,6 +2054,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/arm/Versions b/sysdeps/unix/sysv/linux/arm/Versions index 7e5ba53..de5c1e9 100644 --- a/sysdeps/unix/sysv/linux/arm/Versions +++ b/sysdeps/unix/sysv/linux/arm/Versions @@ -10,6 +10,9 @@ libc { GLIBC_2.24 { recvmsg; sendmsg; } + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { # A copy of sigaction lives in libpthread, and needs these. __default_sa_restorer; __default_rt_sa_restorer; diff --git a/sysdeps/unix/sysv/linux/arm/ioperm.c b/sysdeps/unix/sysv/linux/arm/ioperm.c index 4c0bb63..0762475 100644 --- a/sysdeps/unix/sysv/linux/arm/ioperm.c +++ b/sysdeps/unix/sysv/linux/arm/ioperm.c @@ -61,14 +61,31 @@ static struct { */ static int +sysctl_call (int *name, int nlen, void *oldval, size_t *oldlenp, + void *newval, size_t newlen) +{ + struct kernel_sysctl_args + { + int *name; + int nlen; + void *oldval; + size_t *oldlenp; + void *newval; + size_t newlen; + unsigned long __unused[4]; + } args = { name, nlen, oldval, oldlenp, newval, newlen }; + return INLINE_SYSCALL_CALL (_sysctl, &args); +} + +static int init_iosys (void) { static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; size_t len = sizeof(io.base); - if (! __sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) - && ! __sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0)) + if (! sysctl_call (iobase_name, 3, &io.io_base, &len, NULL, 0) + && ! sysctl_call (ioshift_name, 3, &io.shift, &len, NULL, 0)) { io.initdone = 1; return 0; diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 044ec10..35741a8 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -130,6 +130,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/generic/sysctl.c b/sysdeps/unix/sysv/linux/generic/sysctl.c deleted file mode 100644 index 61e7fa8..0000000 --- a/sysdeps/unix/sysv/linux/generic/sysctl.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf , 2011. - - 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 - -/* This deprecated syscall is no longer used (replaced with /proc/sys). */ -int -sysctl (int *name, int nlen, void *oldval, size_t *oldlenp, - void *newval, size_t newlen) -{ - __set_errno (ENOSYS); - return -1; -} -stub_warning (sysctl) diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions index b5098b2..4cbc3cd 100644 --- a/sysdeps/unix/sysv/linux/hppa/Versions +++ b/sysdeps/unix/sysv/linux/hppa/Versions @@ -35,4 +35,7 @@ libc { GLIBC_2.19 { fanotify_mark; } + GLIBC_2.28 { + sysctl; + } } diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 2360130..1da5f49 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1894,6 +1894,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions index b59ace4..b8679e1 100644 --- a/sysdeps/unix/sysv/linux/i386/Versions +++ b/sysdeps/unix/sysv/linux/i386/Versions @@ -45,6 +45,9 @@ libc { # f* fallocate64; } + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { __modify_ldt; __uname; } diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 39c993f..2a1c99c 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2064,6 +2064,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions index 116f4e8..3da728c 100644 --- a/sysdeps/unix/sysv/linux/ia64/Versions +++ b/sysdeps/unix/sysv/linux/ia64/Versions @@ -25,6 +25,9 @@ libc { GLIBC_2.24 { recvmsg; sendmsg; } + GLIBC_2.28 { + sysctl; + } } libpthread { GLIBC_2.3.3 { diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 68496aa..8b51692 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1928,6 +1928,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions index 7ecc96e..93be63d 100644 --- a/sysdeps/unix/sysv/linux/m68k/Versions +++ b/sysdeps/unix/sysv/linux/m68k/Versions @@ -40,6 +40,9 @@ libc { GLIBC_2.12 { __m68k_read_tp; } + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { __vdso_atomic_cmpxchg_32; __vdso_atomic_barrier; } diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index b676025..d26f322 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -131,6 +131,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index cdd1df5..04dcf51 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2008,6 +2008,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/Versions b/sysdeps/unix/sysv/linux/microblaze/Versions index aa48a3c..d1ee89c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/Versions +++ b/sysdeps/unix/sysv/linux/microblaze/Versions @@ -2,4 +2,7 @@ libc { GLIBC_2.18 { fallocate64; } + GLIBC_2.28 { + sysctl; + } } diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index e4265fd..dd4656c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2129,3 +2129,5 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions index 453f276..ac26de3 100644 --- a/sysdeps/unix/sysv/linux/mips/Versions +++ b/sysdeps/unix/sysv/linux/mips/Versions @@ -37,6 +37,9 @@ libc { GLIBC_2.11 { fallocate64; } + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { # nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime). __vdso_clock_gettime; diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 3a7e0b4..8283a0a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1983,6 +1983,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 5e80592..081fc77 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1981,6 +1981,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 1973fac..f6b7502 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1989,6 +1989,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 5e18ab8..abfd0e0 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1984,6 +1984,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions index 8ebeea1..228f8f1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/Versions +++ b/sysdeps/unix/sysv/linux/powerpc/Versions @@ -5,6 +5,9 @@ ld { } } libc { + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { __vdso_get_tbfreq; __vdso_clock_gettime; diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 676aa50..836fdab 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2012,6 +2012,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 2016c7c..e68ef0e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2017,6 +2017,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 3d19e38..e15404f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2229,3 +2229,5 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index c57ab21..5983ac1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -131,6 +131,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/s390/Versions b/sysdeps/unix/sysv/linux/s390/Versions index 55518a7..640579d 100644 --- a/sysdeps/unix/sysv/linux/s390/Versions +++ b/sysdeps/unix/sysv/linux/s390/Versions @@ -3,6 +3,9 @@ libc { __longjmp_chk; getcontext; } + GLIBC_2.28 { + sysctl; + } GLIBC_PRIVATE { __vdso_clock_gettime; __vdso_clock_getres; diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 2590372..fad7b94 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2022,6 +2022,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 5d6800c..8e88894 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1923,6 +1923,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions index e0938c4..c0bc2da 100644 --- a/sysdeps/unix/sysv/linux/sh/Versions +++ b/sysdeps/unix/sysv/linux/sh/Versions @@ -30,4 +30,7 @@ libc { GLIBC_2.16 { fanotify_mark; } + GLIBC_2.28 { + sysctl; + } } diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index c04872c..4b8f56f 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1898,6 +1898,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions index 4dc1cd7..49c18b1 100644 --- a/sysdeps/unix/sysv/linux/sparc/Versions +++ b/sysdeps/unix/sysv/linux/sparc/Versions @@ -29,6 +29,9 @@ libc { __getshmlba; } + GLIBC_2.28 { + sysctl; + } } libpthread { diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 85cbe30..5bb6028 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2015,6 +2015,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index f7a1ab8..1ea1a9e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1952,6 +1952,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sysctl.c b/sysdeps/unix/sysv/linux/sysctl.c index bb5e31a..c73290b 100644 --- a/sysdeps/unix/sysv/linux/sysctl.c +++ b/sysdeps/unix/sysv/linux/sysctl.c @@ -16,18 +16,37 @@ License along with the GNU C Library; if not, see . */ +#include #include -#include /* For the real memset prototype. */ -#include - -#include -#include +#include +/* This deprecated syscall is no longer used (replaced with /proc/sys). */ int -__sysctl (int *name, int nlen, void *oldval, size_t *oldlenp, - void *newval, size_t newlen) +__deprecated_sysctl (int *name, int nlen, void *oldval, size_t *oldlenp, + void *newval, size_t newlen) { - struct __sysctl_args args = + __set_errno (ENOSYS); + return -1; +} +#ifndef __NR__sysctl +weak_alias (__deprecated_sysctl, sysctl) +#else +versioned_symbol (libc, __deprecated_sysctl, sysctl, GLIBC_2_28); +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) +int +__old_sysctl (int *name, int nlen, void *oldval, size_t *oldlenp, + void *newval, size_t newlen) +{ + struct kernel_sysctl_args + { + int *name; + int nlen; + void *oldval; + size_t *oldlenp; + void *newval; + size_t newlen; + unsigned long __unused[4]; + } args = { .name = name, .nlen = nlen, @@ -37,7 +56,10 @@ __sysctl (int *name, int nlen, void *oldval, size_t *oldlenp, .newlen = newlen }; - return INLINE_SYSCALL (_sysctl, 1, &args); + return INLINE_SYSCALL_CALL (_sysctl, &args); } -libc_hidden_def (__sysctl) -weak_alias (__sysctl, sysctl) +compat_symbol (libc, __old_sysctl, sysctl, GLIBC_2_0); +strong_alias (__old_sysctl, __sysctl) +# endif +#endif +stub_warning (sysctl) diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 2a3cc40..576d3bd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1905,6 +1905,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 sysctl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions index 2a7ed28..f76a5ff 100644 --- a/sysdeps/unix/sysv/linux/x86_64/Versions +++ b/sysdeps/unix/sysv/linux/x86_64/Versions @@ -6,6 +6,9 @@ libc { modify_ldt; } + GLIBC_2.28 { + sysctl; + } } librt { diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 8bc16b9..31d612f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2148,3 +2148,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 GLIBC_2.28 A From patchwork Mon Apr 23 22:36:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 134028 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp1531741lji; Mon, 23 Apr 2018 15:37:20 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+R75+jgY6lTUPW/eq/vogqSOMqSHs+XeXQjmkJ8FwDD00q7JSlLDywWzWHczL5vGBuPAjN X-Received: by 10.99.117.92 with SMTP id f28mr9347472pgn.30.1524523040839; Mon, 23 Apr 2018 15:37:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524523040; cv=none; d=google.com; s=arc-20160816; b=uFSCshTWr90Guv8+dsRs5/45vjnE6kp2YPD3k3AhAXLJJO3hFb57XI4HIoSSxJy67q 6H6/Yl3uOT0Bbht5U6kW0aing+ivTkWfp6FwugucqASUmeVvEPYYquDkPiS14l8TXhCD /B3v8ypVS/yLmzgGUvX6pFEbZ7ZuHiMZEFo3O8a5bFZN+RueNE6QIZMIcv4Z65N0Nn8d nAoLhNeek+8VAmu0kO/P1pAezyJxQ0Fp7NyDzHfSBQ5ysr2psuChDsBH5+Ofq14hiNAA p5oZN7yfuBmqAq+P/smhX+fIa11GpEkWtw1+q1rlsTfaqV13qPAU8snWwJwQw62qy7k9 4Xyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:to:from:delivered-to :sender:list-help:list-post:list-archive:list-subscribe :list-unsubscribe:list-id:precedence:mailing-list:dkim-signature :domainkey-signature:arc-authentication-results; bh=++xoO2ztVKNpdN8poCz7nSqgp7tWpjlf35iZNccbA+8=; b=JBMLfKagaOSfvyhLhYFHxumoXTbyqYhcj8N39Nm5Opfyi35S/DeSzzYBlH3CBD8GB4 o5thBtNki+TTsHhlohWh6oLFV4LkFzFgzUIZhsXZGethCffIQeOTfcJw38DOp5KsmnUi l3pfIOLz+BurdCyV/Ls365cDOagQ6pI8lnISlPuvzU2B93RNS7elxMzc03QAXIEFFrpK 4wM3qo0x814doXUCkQrbedg5S7ze2tO81DQ984kZyRRbGorT43QGJ3Mm68gzDCb0WXUt k3dGvH7layTPgEBnaGDzxYFRylE3+YKH/K5+3tmXRO41Ko+luURgY7mcKKXN/vuCueIo GLNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=R3lRelG5; spf=pass (google.com: domain of libc-alpha-return-91789-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-91789-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id t129si12222496pfb.98.2018.04.23.15.37.20 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Apr 2018 15:37:20 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-91789-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=R3lRelG5; spf=pass (google.com: domain of libc-alpha-return-91789-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=libc-alpha-return-91789-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=mOd4ct9t43MAmEVGT7Mp1B7pQXrCzVJ fUUIX4+mdtZ8U+ciDAxCFF199Fu8IJNAHGWWidhfdOkutgUL9quDznV7ybEJD/CY DYFewGuDEbc3TjICNsbKSm6UY1WhCb4IDNv93ZAtX3pXT+/R9xReYquwOVHZEhJo E5jRwWQbAcBw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:in-reply-to :references; s=default; bh=CsZcBafmZAcOCg63NRWZxDSs7iE=; b=R3lRe lG5r3Cbxlu0U6PDfZotPJgaXPBkY1YsF/DjwBLHNTYusVXq88eNxEJkWl0bXuoOa YycBHnlBC36CNmWDU0TyCKbJL5jgmbA+HpgJwi155TBb6OgyaZkuCsDC4nFkQV6/ dJGq404DpF8T+DOcSdgS9GoqZbW+017mlSeU2A= Received: (qmail 34332 invoked by alias); 23 Apr 2018 22:37:11 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 34301 invoked by uid 89); 23 Apr 2018 22:37:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=issuing, 1725, ports, H*RU:209.85.216.194 X-HELO: mail-qt0-f194.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=++xoO2ztVKNpdN8poCz7nSqgp7tWpjlf35iZNccbA+8=; b=A+p0yoW1ybfnVREyXXGrrGNYenbMTL1lC/XBidWsehcDTQNBXFjefmrQbDyb48x2Ij zTahcrftGA9qGANHTPlFLqNKyA5glrWyqvND1ejJUSQRvN5MLjR0qjoZW/ktyhpT5NYm h98lfiwt0moJ1zqTsOwtwjhAmF+zX0PuG7EIBYav1Yn9i2q4cko/Mi87B4nvzV3a+gzn zUJd1EBp4r6Djn90oOIj0CEc9zRqDUo5267DX7Y0UvEUYzRiLJySeYw7FOOErcPvnVYY vFJvbHXOP1vsczZBaZGWI4E6ZXWyC6WbkdA+ezURUktdDTeChSjMkgGt35bI1O+v3d6D n1Ew== X-Gm-Message-State: ALQs6tBFJO0KYAvZKpixsaIyIzyyC8pVLTF54/ayfxpswJ+qzEQP81rE wv//PagW2XyL/MljVqWvTDg99OMn5+E= X-Received: by 10.12.188.144 with SMTP id l16mr2519317qvg.178.1524523025259; Mon, 23 Apr 2018 15:37:05 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [PATCH 2/2] Deprecate ustat syscall interface Date: Mon, 23 Apr 2018 19:36:58 -0300 Message-Id: <1524523018-7216-2-git-send-email-adhemerval.zanella@linaro.org> In-Reply-To: <1524523018-7216-1-git-send-email-adhemerval.zanella@linaro.org> References: <1524523018-7216-1-git-send-email-adhemerval.zanella@linaro.org> As for sysctl, ustat has been deprecated in favor of fstatfs. Newer ports which uses generic interface builds a stub version which returns ENOSYS. This patch deprecate ustat interface by issuing ENOSYS as default and adds compat symbol for architectures which still defines __NR_ustat. Checked on x86_64-linux-gnu and i686-linux-gnu. Also checked with a check-abi on all affected ABIs. * sysdeps/unix/sysv/linux/generic/ustat.c: Move to ... * sysdeps/unix/sysv/linux/ustat.c: ... here and deprecate symbol. * sysdeps/unix/sysv/linux/alpha/libc.abilist [GLIBC_2.28] (ustat): Add symbol. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. --- ChangeLog | 22 +++++++++++++++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/generic/ustat.c | 32 ---------------------- sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/ustat.c | 29 +++++++++++++++----- sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 21 files changed, 62 insertions(+), 39 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/generic/ustat.c -- 2.7.4 diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 09fc772..d757897 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2056,6 +2056,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 35741a8..a52db8b 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -132,6 +132,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/generic/ustat.c b/sysdeps/unix/sysv/linux/generic/ustat.c deleted file mode 100644 index d4f9c89..0000000 --- a/sysdeps/unix/sysv/linux/generic/ustat.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf , 2011. - - 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 - -/* This deprecated syscall is no longer used (replaced with fstat). */ -int -ustat (dev_t dev, struct ustat *ubuf) -{ - __set_errno (ENOSYS); - return -1; -} -stub_warning (ustat) diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 1da5f49..d43a2fa 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1896,6 +1896,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 2a1c99c..b17a8f9 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2066,6 +2066,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 8b51692..9e255b0 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1930,6 +1930,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index d26f322..d8d05b2 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -133,6 +133,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 04dcf51..5888c38 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2010,6 +2010,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index dd4656c..02d50f5 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2131,3 +2131,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 836fdab..9a80189 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2014,6 +2014,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index e68ef0e..a7b7d23 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2019,6 +2019,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 5983ac1..12721da 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -133,6 +133,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index fad7b94..96c38d6 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2024,6 +2024,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 8e88894..59832c1 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1925,6 +1925,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 4b8f56f..790ef22 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1900,6 +1900,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 5bb6028..6873735 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2017,6 +2017,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 1ea1a9e..6a58857 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1954,6 +1954,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c index 8e73faa..1fcec18 100644 --- a/sysdeps/unix/sysv/linux/ustat.c +++ b/sysdeps/unix/sysv/linux/ustat.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Get filesystem statistics (deprecated). Linux version. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -16,15 +17,25 @@ License along with the GNU C Library; if not, see . */ -#include #include -#include - #include -#include +#include +#include +/* This deprecated syscall is no longer used (replaced with fstat). */ +int +__deprecated_ustat (dev_t dev, struct ustat *ubuf) +{ + __set_errno (ENOSYS); + return -1; +} +#ifndef __NR_ustat +weak_alias (__deprecated_ustat, ustat) +#else +versioned_symbol (libc, __deprecated_ustat, ustat, GLIBC_2_28); +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) int -ustat (dev_t dev, struct ustat *ubuf) +__old_ustat (dev_t dev, struct ustat *ubuf) { unsigned long long int k_dev; @@ -33,5 +44,9 @@ ustat (dev_t dev, struct ustat *ubuf) if (k_dev != dev) return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); - return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf); + return INLINE_SYSCALL_CALL (ustat, (unsigned int) k_dev, ubuf); } +compat_symbol (libc, __old_ustat, ustat, GLIBC_2_0); +# endif /* SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) */ +#endif /* __NR_ustat */ +stub_warning (ustat) diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 576d3bd..5c682ac 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1907,6 +1907,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 sysctl F +GLIBC_2.28 ustat F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 31d612f..cc7bb7c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2149,3 +2149,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 ustat F