From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_PASS, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 270CD1F5AE for ; Fri, 24 Jul 2020 09:29:26 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3C30E388C013; Fri, 24 Jul 2020 09:29:25 +0000 (GMT) Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9]) by sourceware.org (Postfix) with ESMTPS id 76583385701E for ; Fri, 24 Jul 2020 09:29:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 76583385701E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=lukma@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4BCkRh4Mf3z1qrff; Fri, 24 Jul 2020 11:29:20 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4BCkRh445lz1qy6L; Fri, 24 Jul 2020 11:29:20 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id a5FuclGppz88; Fri, 24 Jul 2020 11:29:18 +0200 (CEST) X-Auth-Info: hNNQdIgwSkarMGKm4vInZUVWBfjhZb5MhZlwv2CUCV0= Received: from jawa (85-222-111-42.dynamic.chello.pl [85.222.111.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Fri, 24 Jul 2020 11:29:18 +0200 (CEST) Date: Fri, 24 Jul 2020 11:29:17 +0200 From: Lukasz Majewski To: Adhemerval Zanella Subject: Re: [PATCH 12/16] linux: Implement {l}fstat{at} in terms of fstatat Message-ID: <20200724112917.47a2083d@jawa> In-Reply-To: <20200723194641.1949404-13-adhemerval.zanella@linaro.org> References: <20200723194641.1949404-1-adhemerval.zanella@linaro.org> <20200723194641.1949404-13-adhemerval.zanella@linaro.org> Organization: denx.de X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; boundary="Sig_/uIcl03tYcfUvP1kWPtn417="; protocol="application/pgp-signature" X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alistair Francis , libc-alpha@sourceware.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --Sig_/uIcl03tYcfUvP1kWPtn417= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Thu, 23 Jul 2020 16:46:37 -0300 Adhemerval Zanella wrote: > Both fstatat and fstata64 calls the old fxstatat and fxstatat64 > repectivelly with _STAT_VER, the one currently exported as default > for all ABIs. >=20 > Checked on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Lukasz Majewski > --- > sysdeps/unix/sysv/linux/fstat.c | 31 +++++++++++++++++++++++ > sysdeps/unix/sysv/linux/fstat64.c | 38 > +++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/fstatat.c | > 30 +++++++++++++++++++++++ sysdeps/unix/sysv/linux/fstatat64.c | 38 > +++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/lstat.c | > 31 +++++++++++++++++++++++ sysdeps/unix/sysv/linux/lstat64.c | 38 > +++++++++++++++++++++++++++++ sysdeps/unix/sysv/linux/stat.c | > 31 +++++++++++++++++++++++ sysdeps/unix/sysv/linux/stat64.c | 38 > +++++++++++++++++++++++++++++ 8 files changed, 275 insertions(+) > create mode 100644 sysdeps/unix/sysv/linux/fstat.c > create mode 100644 sysdeps/unix/sysv/linux/fstat64.c > create mode 100644 sysdeps/unix/sysv/linux/fstatat.c > create mode 100644 sysdeps/unix/sysv/linux/fstatat64.c > create mode 100644 sysdeps/unix/sysv/linux/lstat.c > create mode 100644 sysdeps/unix/sysv/linux/lstat64.c > create mode 100644 sysdeps/unix/sysv/linux/stat.c > create mode 100644 sysdeps/unix/sysv/linux/stat64.c >=20 > diff --git a/sysdeps/unix/sysv/linux/fstat.c > b/sysdeps/unix/sysv/linux/fstat.c new file mode 100644 > index 0000000000..bdbeded956 > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/fstat.c > @@ -0,0 +1,31 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + > +#if !XSTAT_IS_XSTAT64 > +int > +__fstat (int fd, struct stat *buf) > +{ > + return __fstatat (fd, "", buf, AT_EMPTY_PATH); > +} > + > +weak_alias (__fstat, fstat) > +#endif > diff --git a/sysdeps/unix/sysv/linux/fstat64.c > b/sysdeps/unix/sysv/linux/fstat64.c new file mode 100644 > index 0000000000..c2ff1ff577 > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/fstat64.c > @@ -0,0 +1,38 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + . */ > + > +#define __fstat __redirect___fstat > +#define fstat __redirect_fstat > +#include > +#undef __fstat > +#undef fstat > +#include > +#include > + > +int > +__fstat64 (int fd, struct stat64 *buf) > +{ > + return __fstatat64 (fd, "", buf, AT_EMPTY_PATH); > +} > +hidden_def (__fstat64) > +weak_alias (__fstat64, fstat64) > + > +#if XSTAT_IS_XSTAT64 > +strong_alias (__fstat64, __fstat) > +weak_alias (__fstat64, fstat) > +#endif > diff --git a/sysdeps/unix/sysv/linux/fstatat.c > b/sysdeps/unix/sysv/linux/fstatat.c new file mode 100644 > index 0000000000..457496605c > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/fstatat.c > @@ -0,0 +1,30 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + > +#if !XSTAT_IS_XSTAT64 > +int > +__fstatat (int fd, const char *file, struct stat *buf, int flag) > +{ > + return __fxstatat (_STAT_VER, fd, file, buf, flag); > +} > + > +weak_alias (__fstatat, fstatat) > +#endif > diff --git a/sysdeps/unix/sysv/linux/fstatat64.c > b/sysdeps/unix/sysv/linux/fstatat64.c new file mode 100644 > index 0000000000..46487919e6 > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/fstatat64.c > @@ -0,0 +1,38 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + . */ > + > +#define __fstatat __redirect___fstatat > +#define fstatat __redirect_fstatat > +#include > +#undef __fstatat > +#undef fstatat > +#include > + > +int > +__fstatat64 (int fd, const char *file, struct stat64 *buf, int flag) > +{ > + return __fxstatat64 (_STAT_VER, fd, file, buf, flag); > +} > +hidden_def (__fstatat64) > +weak_alias (__fstatat64, fstatat64) > + > +#if XSTAT_IS_XSTAT64 > +strong_alias (__fstatat64, __fstatat) > +weak_alias (__fstatat64, fstatat) > +strong_alias (__fstatat64, __GI___fstatat); > +#endif > diff --git a/sysdeps/unix/sysv/linux/lstat.c > b/sysdeps/unix/sysv/linux/lstat.c new file mode 100644 > index 0000000000..b0bdeee9e9 > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/lstat.c > @@ -0,0 +1,31 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + > +#if !XSTAT_IS_XSTAT64 > +int > +__lstat (const char *file, struct stat *buf) > +{ > + return __fstatat (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW); > +} > + > +weak_alias (__lstat, lstat) > +#endif > diff --git a/sysdeps/unix/sysv/linux/lstat64.c > b/sysdeps/unix/sysv/linux/lstat64.c new file mode 100644 > index 0000000000..e5f02e9822 > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/lstat64.c > @@ -0,0 +1,38 @@ > +/* Get file status. > + Copyright (C) 1996-2020 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 > + . */ > + > +#define __lstat __redirect___lstat > +#define lstat __redirect_lstat > +#include > +#undef __lstat > +#undef lstat > +#include > +#include > + > +int > +__lstat64 (const char *file, struct stat64 *buf) > +{ > + return __fstatat64 (AT_FDCWD, file, buf, AT_SYMLINK_NOFOLLOW); > +} > +hidden_def (__lstat64) > +weak_alias (__lstat64, lstat64) > + > +#if XSTAT_IS_XSTAT64 > +strong_alias (__lstat64, __lstat) > +weak_alias (__lstat64, lstat) > +#endif > diff --git a/sysdeps/unix/sysv/linux/stat.c > b/sysdeps/unix/sysv/linux/stat.c new file mode 100644 > index 0000000000..a77502eb95 > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/stat.c > @@ -0,0 +1,31 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + > +#if !XSTAT_IS_XSTAT64 > +int > +__stat (const char *file, struct stat *buf) > +{ > + return __fstatat (AT_FDCWD, file, buf, 0); > +} > + > +weak_alias (__stat, stat) > +#endif > diff --git a/sysdeps/unix/sysv/linux/stat64.c > b/sysdeps/unix/sysv/linux/stat64.c new file mode 100644 > index 0000000000..2f40037c2c > --- /dev/null > +++ b/sysdeps/unix/sysv/linux/stat64.c > @@ -0,0 +1,38 @@ > +/* Get file status. Linux version. > + Copyright (C) 2020 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 > + . */ > + > +#define __stat __redirect___stat > +#define stat __redirect_stat > +#include > +#undef __stat > +#undef stat > +#include > +#include > + > +int > +__stat64 (const char *file, struct stat64 *buf) > +{ > + return __fstatat64 (AT_FDCWD, file, buf, 0); > +} > +hidden_def (__stat64) > +weak_alias (__stat64, stat64) > + > +#if XSTAT_IS_XSTAT64 > +strong_alias (__stat64, __stat) > +weak_alias (__stat64, stat) > +#endif Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de --Sig_/uIcl03tYcfUvP1kWPtn417= Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEgAyFJ+N6uu6+XupJAR8vZIA0zr0FAl8aqe0ACgkQAR8vZIA0 zr1sswf/b+36W2GMALv8ZG1Qz4g5/O2z8kDTPeYORJDB9naWCRv1OpBlO+C3clMB l7QaXIAZ2eKDydlOA1Xro/bFihZi0OjifMmJLdHNHnB8aAlHwYoo3QR7dLSYDWSo nkMSHTiVboummydC85EmJqbPuO9eDSyVg20ds4lYTpKGH7xUQim/9xuC33P8c/KI Id7G/vLo+mN/U/i96u5ZUhgwM0Z8fmstWLLoCuK0GsrlnziVnt+GKoIxL9bunC1/ LWdYpUO/lffg7k1jGsrpuvBPgw+JhApcaYKSkKRJ64/+OhlXw7wmgnGPC4abk2UI mnqCnPwogHclRfZh3WtIz5SENhbTgA== =OBMQ -----END PGP SIGNATURE----- --Sig_/uIcl03tYcfUvP1kWPtn417=--