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 [IPv6:2620:52:3:1:0:246e:9693:128c]) (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 9E1221F5AE for ; Fri, 24 Jul 2020 09:40:42 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D7F3A385701E; Fri, 24 Jul 2020 09:40:41 +0000 (GMT) Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.10]) by sourceware.org (Postfix) with ESMTPS id 3FCE13857C71 for ; Fri, 24 Jul 2020 09:40:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3FCE13857C71 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 4BCkhj22ZHz1rwZx; Fri, 24 Jul 2020 11:40:37 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4BCkhj1SsCz1qy6P; Fri, 24 Jul 2020 11:40:37 +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 w0XOg7TFCjNa; Fri, 24 Jul 2020 11:40:35 +0200 (CEST) X-Auth-Info: pOFTuQ0hZznxoR7lATvI3r+K+J+CvkQtyqf71vPZZAw= 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:40:34 +0200 (CEST) Date: Fri, 24 Jul 2020 11:40:34 +0200 From: Lukasz Majewski To: Adhemerval Zanella Subject: Re: [PATCH 14/16] linux: Move {f}xstat{at} to compat symbols Message-ID: <20200724114034.3d510a24@jawa> In-Reply-To: <20200723194641.1949404-15-adhemerval.zanella@linaro.org> References: <20200723194641.1949404-1-adhemerval.zanella@linaro.org> <20200723194641.1949404-15-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_/ROm.4G.x3Lbbz.Fcec+RJmt"; 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_/ROm.4G.x3Lbbz.Fcec+RJmt Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Thu, 23 Jul 2020 16:46:39 -0300 Adhemerval Zanella wrote: > They are not used internally anymore. >=20 > Checked with a build for all affected Linux ABIs. I checked also > on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Lukasz Majewski > --- > sysdeps/unix/sysv/linux/alpha/fxstat64.c | 12 ++++++++++- > sysdeps/unix/sysv/linux/alpha/fxstatat64.c | 9 +++++++- > sysdeps/unix/sysv/linux/alpha/lxstat64.c | 12 ++++++++++- > sysdeps/unix/sysv/linux/alpha/xstat64.c | 12 ++++++++++- > sysdeps/unix/sysv/linux/fxstat.c | 8 +++++++ > sysdeps/unix/sysv/linux/fxstat64.c | 14 +++++++++---- > sysdeps/unix/sysv/linux/fxstatat.c | 8 +++++++ > sysdeps/unix/sysv/linux/fxstatat64.c | 12 ++++++++++- > sysdeps/unix/sysv/linux/lxstat.c | 8 +++++++ > sysdeps/unix/sysv/linux/lxstat64.c | 21 > ++++++++++++------- sysdeps/unix/sysv/linux/mips/fxstat.c | > 8 +++++++ sysdeps/unix/sysv/linux/mips/lxstat.c | 8 +++++++ > .../unix/sysv/linux/mips/mips64/fxstat64.c | 8 +++++++ > .../unix/sysv/linux/mips/mips64/fxstatat.c | 8 +++++++ > .../unix/sysv/linux/mips/mips64/fxstatat64.c | 8 +++++++ > .../unix/sysv/linux/mips/mips64/lxstat64.c | 8 +++++++ > sysdeps/unix/sysv/linux/mips/mips64/xstat64.c | 9 +++++++- > sysdeps/unix/sysv/linux/mips/xstat.c | 8 +++++++ > sysdeps/unix/sysv/linux/xstat.c | 9 ++++++++ > sysdeps/unix/sysv/linux/xstat64.c | 15 ++++++++----- > 20 files changed, 182 insertions(+), 23 deletions(-) >=20 > diff --git a/sysdeps/unix/sysv/linux/alpha/fxstat64.c > b/sysdeps/unix/sysv/linux/alpha/fxstat64.c index > 9d6b8eca32..bcfb55050c 100644 --- > a/sysdeps/unix/sysv/linux/alpha/fxstat64.c +++ > b/sysdeps/unix/sysv/linux/alpha/fxstat64.c @@ -22,9 +22,11 @@ > #include > #include > #include > +#include > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __fxstat64 (int vers, int fd, struct stat64 *buf) > { > switch (vers) > @@ -42,4 +44,12 @@ __fxstat64 (int vers, int fd, struct stat64 *buf) > } > } > } > -strong_alias (__fxstat64, __fxstat); > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > +strong_alias (__fxstat64, __fxstat_compat) > +compat_symbol (libc, __fxstat_compat, __fxstat, GLIBC_2_0); > +#endif > + > +#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33) > +compat_symbol (libc, __fxstat64, __fxstat64, GLIBC_2_1); > +#endif > diff --git a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c > b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c index > 997fb87ac6..fa3074eeca 100644 --- > a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c +++ > b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c @@ -22,11 +22,18 @@ > #include > #include > #include > +#include > =20 > +#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33) > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, > int flag) { > return INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag); > } > -strong_alias (__fxstatat64, __fxstatat); > +strong_alias (__fxstatat64, __fxstatat_compat) > +compat_symbol (libc, __fxstatat_compat, __fxstatat, GLIBC_2_4); > + > +compat_symbol (libc, __fxstatat64, __fxstatat64, GLIBC_2_4); > +#endif > diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat64.c > b/sysdeps/unix/sysv/linux/alpha/lxstat64.c index > 38f132f15e..7424b2f621 100644 --- > a/sysdeps/unix/sysv/linux/alpha/lxstat64.c +++ > b/sysdeps/unix/sysv/linux/alpha/lxstat64.c @@ -23,9 +23,11 @@ > #include > #include > #include > +#include > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __lxstat64 (int vers, const char *name, struct stat64 *buf) > { > switch (vers) > @@ -43,4 +45,12 @@ __lxstat64 (int vers, const char *name, struct > stat64 *buf) } > } > } > -weak_alias (__lxstat64, __lxstat); > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > +strong_alias (__lxstat64, __lxstat_compat) > +compat_symbol (libc, __lxstat_compat, __lxstat, GLIBC_2_0); > +#endif > + > +#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33) > +compat_symbol (libc, __lxstat64, __lxstat64, GLIBC_2_1); > +#endif > diff --git a/sysdeps/unix/sysv/linux/alpha/xstat64.c > b/sysdeps/unix/sysv/linux/alpha/xstat64.c index > c856c95dc5..59f7ddae7f 100644 --- > a/sysdeps/unix/sysv/linux/alpha/xstat64.c +++ > b/sysdeps/unix/sysv/linux/alpha/xstat64.c @@ -23,9 +23,11 @@ > #include > #include > #include > +#include > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __xstat64 (int vers, const char *name, struct stat64 *buf) > { > switch (vers) > @@ -43,4 +45,12 @@ __xstat64 (int vers, const char *name, struct > stat64 *buf) } > } > } > -weak_alias (__xstat64, __xstat); > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > +strong_alias (__xstat64, __xstat_compat) > +compat_symbol (libc, __xstat_compat, __xstat, GLIBC_2_0); > +#endif > + > +#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33) > +compat_symbol (libc, __xstat64, __xstat64, GLIBC_2_1); > +#endif > diff --git a/sysdeps/unix/sysv/linux/fxstat.c > b/sysdeps/unix/sysv/linux/fxstat.c index f78497ea92..649bb95252 100644 > --- a/sysdeps/unix/sysv/linux/fxstat.c > +++ b/sysdeps/unix/sysv/linux/fxstat.c > @@ -24,9 +24,13 @@ > #if !XSTAT_IS_XSTAT64 > # include > # include > +# include > + > +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > =20 > /* Get information about the file FD in BUF. */ > int > +attribute_compat_text_section > __fxstat (int vers, int fd, struct stat *buf) > { > switch (vers) > @@ -57,4 +61,8 @@ __fxstat (int vers, int fd, struct stat *buf) > } > } > } > + > +compat_symbol (libc, __fxstat, __fxstat, GLIBC_2_0); > +# endif /* SHLIB_COMPAT */ > + > #endif /* XSTAT_IS_XSTAT64 */ > diff --git a/sysdeps/unix/sysv/linux/fxstat64.c > b/sysdeps/unix/sysv/linux/fxstat64.c index 6ae7babccc..726dfd0ad6 > 100644 --- a/sysdeps/unix/sysv/linux/fxstat64.c > +++ b/sysdeps/unix/sysv/linux/fxstat64.c > @@ -24,10 +24,14 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > =20 > /* Get information about the file FD in BUF. */ > =20 > int > +attribute_compat_text_section > ___fxstat64 (int vers, int fd, struct stat64 *buf) > { > #if XSTAT_IS_XSTAT64 > @@ -53,16 +57,18 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf) > #endif /* XSTAT_IS_XSTAT64 */ > } > =20 > -#include > - > #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) > -versioned_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2); > +compat_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2); > strong_alias (___fxstat64, __old__fxstat64) > compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1); > #else > strong_alias (___fxstat64, __fxstat64) > +compat_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2); > #endif > =20 > #if XSTAT_IS_XSTAT64 > -strong_alias (__fxstat64, __fxstat); > +strong_alias (___fxstat64, __fxstat_compat) > +compat_symbol (libc, __fxstat_compat, __fxstat, GLIBC_2_2); > #endif > + > +#endif /* SHLIB_COMPAT */ > diff --git a/sysdeps/unix/sysv/linux/fxstatat.c > b/sysdeps/unix/sysv/linux/fxstatat.c index 1a60fc10e3..2083e18eac > 100644 --- a/sysdeps/unix/sysv/linux/fxstatat.c > +++ b/sysdeps/unix/sysv/linux/fxstatat.c > @@ -24,9 +24,13 @@ > #if !XSTAT_IS_XSTAT64 > # include > # include > +# include > + > +# if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33) > =20 > /* Get information about the file FD in BUF. */ > int > +attribute_compat_text_section > __fxstatat (int vers, int fd, const char *file, struct stat *st, int > flag) { > #if STAT_IS_KERNEL_STAT > @@ -46,4 +50,8 @@ __fxstatat (int vers, int fd, const char *file, > struct stat *st, int flag) return r ?: __xstat32_conv (vers, &st64, > st); #endif > } > + > +compat_symbol (libc, __fxstatat, __fxstatat, GLIBC_2_4); > +# endif /* SHLIB_COMPAT */ > + > #endif /* XSTAT_IS_XSTAT64 */ > diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c > b/sysdeps/unix/sysv/linux/fxstatat64.c index 7fe034809c..8a505451d9 > 100644 --- a/sysdeps/unix/sysv/linux/fxstatat64.c > +++ b/sysdeps/unix/sysv/linux/fxstatat64.c > @@ -24,10 +24,14 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33) > =20 > /* Get information about the file FD in BUF. */ > =20 > int > +attribute_compat_text_section > __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, > int flag) { > #if XSTAT_IS_XSTAT64 > @@ -61,6 +65,12 @@ __fxstatat64 (int vers, int fd, const char *file, > struct stat64 *st, int flag) #endif > return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); > } > + > +compat_symbol (libc, __fxstatat64, __fxstatat64, GLIBC_2_4); > + > #if XSTAT_IS_XSTAT64 > -strong_alias (__fxstatat64, __fxstatat); > +strong_alias (__fxstatat64, __fxstatat_compat) > +compat_symbol (libc, __fxstatat_compat, __fxstatat, GLIBC_2_4); > #endif > + > +#endif /* SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33) */ > diff --git a/sysdeps/unix/sysv/linux/lxstat.c > b/sysdeps/unix/sysv/linux/lxstat.c index 156173a4e1..f307aa4942 100644 > --- a/sysdeps/unix/sysv/linux/lxstat.c > +++ b/sysdeps/unix/sysv/linux/lxstat.c > @@ -20,13 +20,17 @@ > #include > #include > #include > +#include > =20 > #if !XSTAT_IS_XSTAT64 > # include > # include > =20 > +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > + > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __lxstat (int vers, const char *name, struct stat *buf) > { > switch (vers) > @@ -58,4 +62,8 @@ __lxstat (int vers, const char *name, struct stat > *buf) } > } > } > + > +compat_symbol (libc, __lxstat, __lxstat, GLIBC_2_0); > +# endif /* SHLIB_COMPAT */ > + > #endif /* XSTAT_IS_XSTAT64 */ > diff --git a/sysdeps/unix/sysv/linux/lxstat64.c > b/sysdeps/unix/sysv/linux/lxstat64.c index 29bd1cdf72..660d59aea3 > 100644 --- a/sysdeps/unix/sysv/linux/lxstat64.c > +++ b/sysdeps/unix/sysv/linux/lxstat64.c > @@ -24,10 +24,14 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > =20 > int > +attribute_compat_text_section > ___lxstat64 (int vers, const char *name, struct stat64 *buf) > { > #if XSTAT_IS_XSTAT64 > @@ -70,17 +74,18 @@ ___lxstat64 (int vers, const char *name, struct > stat64 *buf) return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); > } > =20 > -#if XSTAT_IS_XSTAT64 > -weak_alias (___lxstat64, __lxstat); > -weak_alias (___lxstat64, __GI___lxstat); > -#endif > - > -#include > - > #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) > -versioned_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2); > +compat_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2); > strong_alias (___lxstat64, __old__lxstat64) > compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1); > #else > strong_alias (___lxstat64, __lxstat64); > +compat_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2); > #endif > + > +#if XSTAT_IS_XSTAT64 > +strong_alias (___lxstat64,__lxstat_compat) > +compat_symbol (libc, __lxstat_compat, __lxstat, GLIBC_2_2); > +#endif > + > +#endif /* SHLIB_COMPAT */ > diff --git a/sysdeps/unix/sysv/linux/mips/fxstat.c > b/sysdeps/unix/sysv/linux/mips/fxstat.c index 4585c2362b..cb9f656628 > 100644 --- a/sysdeps/unix/sysv/linux/mips/fxstat.c > +++ b/sysdeps/unix/sysv/linux/mips/fxstat.c > @@ -21,9 +21,13 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __fxstat (int vers, int fd, struct stat *buf) > { > switch (vers) > @@ -39,3 +43,7 @@ __fxstat (int vers, int fd, struct stat *buf) > } > } > } > + > +compat_symbol (libc, __fxstat, __fxstat, GLIBC_2_0); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/lxstat.c > b/sysdeps/unix/sysv/linux/mips/lxstat.c index 62a3b15b32..ebd05cca50 > 100644 --- a/sysdeps/unix/sysv/linux/mips/lxstat.c > +++ b/sysdeps/unix/sysv/linux/mips/lxstat.c > @@ -21,9 +21,13 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __lxstat (int vers, const char *name, struct stat *buf) > { > switch (vers) > @@ -39,3 +43,7 @@ __lxstat (int vers, const char *name, struct stat > *buf) } > } > } > + > +compat_symbol (libc, __lxstat, __lxstat, GLIBC_2_0); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c > b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c index > e6c1cacd4b..855c650814 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c +++ > b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c @@ -20,10 +20,14 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_33) > =20 > /* Get information about the file FD in BUF. */ > =20 > int > +attribute_compat_text_section > __fxstat64 (int vers, int fd, struct stat64 *buf) > { > struct kernel_stat kbuf; > @@ -31,3 +35,7 @@ __fxstat64 (int vers, int fd, struct stat64 *buf) > return r ?: __xstat64_conv (vers, &kbuf, buf); > =20 > } > + > +compat_symbol (libc, __fxstat64, __fxstat64, GLIBC_2_2); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c > b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c index > e384dbab8b..1c1fbb02c2 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c +++ > b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c @@ -21,12 +21,20 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33) > =20 > /* Get information about the file FD in BUF. */ > int > +attribute_compat_text_section > __fxstatat (int vers, int fd, const char *file, struct stat *st, int > flag) { > struct kernel_stat kst; > int r =3D INLINE_SYSCALL_CALL (newfstatat, fd, file, &kst, flag); > return r ?: __xstat_conv (vers, &kst, st); > } > + > +compat_symbol (libc, __fxstatat, __fxstatat, GLIBC_2_4); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c > b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c index > cfd172d301..f40a2c5aa8 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c +++ > b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c @@ -19,10 +19,14 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > =20 > int > +attribute_compat_text_section > __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, > int flag) { > if (vers =3D=3D _STAT_VER_LINUX) > @@ -33,3 +37,7 @@ __fxstatat64 (int vers, int fd, const char *file, > struct stat64 *st, int flag) } > return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); > } > + > +compat_symbol (libc, __fxstatat64, __fxstatat64, GLIBC_2_4); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c > b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c index > 0f3934f8c8..752c5284a7 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c +++ > b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c @@ -20,12 +20,20 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __lxstat64 (int vers, const char *name, struct stat64 *buf) > { > struct kernel_stat kbuf; > int r =3D INLINE_SYSCALL_CALL (lstat, name, &kbuf); > return r ?: __xstat64_conv (vers, &kbuf, buf); > } > + > +compat_symbol (libc, __lxstat64, __lxstat64, GLIBC_2_2); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c > b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c index > 64d2952276..a620ba2f1f 100644 --- > a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c +++ > b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c @@ -20,13 +20,20 @@ > #include > #include > #include > +#include > =20 > -/* Get information about the file NAME in BUF. */ > +#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_33) > =20 > +/* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __xstat64 (int vers, const char *name, struct stat64 *buf) > { > struct kernel_stat kbuf; > int r =3D INLINE_SYSCALL_CALL (stat, name, &kbuf); > return r ?: __xstat64_conv (vers, &kbuf, buf); > } > + > +compat_symbol (libc, __xstat64, __xstat64, GLIBC_2_2); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/mips/xstat.c > b/sysdeps/unix/sysv/linux/mips/xstat.c index d6ff5ccbe0..0748a3422d > 100644 --- a/sysdeps/unix/sysv/linux/mips/xstat.c > +++ b/sysdeps/unix/sysv/linux/mips/xstat.c > @@ -21,9 +21,13 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __xstat (int vers, const char *name, struct stat *buf) > { > switch (vers) > @@ -39,3 +43,7 @@ __xstat (int vers, const char *name, struct stat > *buf) } > } > } > + > +compat_symbol (libc, __xstat, __xstat, GLIBC_2_0); > + > +#endif > diff --git a/sysdeps/unix/sysv/linux/xstat.c > b/sysdeps/unix/sysv/linux/xstat.c index a971e8cf6a..51329831b0 100644 > --- a/sysdeps/unix/sysv/linux/xstat.c > +++ b/sysdeps/unix/sysv/linux/xstat.c > @@ -20,13 +20,17 @@ > #include > #include > #include > +#include > =20 > #if !XSTAT_IS_XSTAT64 > # include > # include > =20 > +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > + > /* Get information about the file NAME in BUF. */ > int > +attribute_compat_text_section > __xstat (int vers, const char *name, struct stat *buf) > { > switch (vers) > @@ -57,4 +61,9 @@ __xstat (int vers, const char *name, struct stat > *buf) } > } > } > + > +compat_symbol (libc, __xstat, __xstat, GLIBC_2_0); > +# endif /* SHLIB_COMPAT */ > + > #endif /* XSTAT_IS_XSTAT64 */ > + > diff --git a/sysdeps/unix/sysv/linux/xstat64.c > b/sysdeps/unix/sysv/linux/xstat64.c index e3a42966f5..4872d24694 > 100644 --- a/sysdeps/unix/sysv/linux/xstat64.c > +++ b/sysdeps/unix/sysv/linux/xstat64.c > @@ -24,10 +24,14 @@ > #include > #include > #include > +#include > + > +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33) > =20 > /* Get information about the file NAME in BUF. */ > =20 > int > +attribute_compat_text_section > ___xstat64 (int vers, const char *name, struct stat64 *buf) > { > #if XSTAT_IS_XSTAT64 > @@ -68,16 +72,17 @@ ___xstat64 (int vers, const char *name, struct > stat64 *buf) } > =20 > #if XSTAT_IS_XSTAT64 > -weak_alias (___xstat64, __xstat); > -weak_alias (___xstat64, __GI___xstat); > +strong_alias (___xstat64, __xstat_compat) > +compat_symbol (libc, __xstat_compat, __xstat, GLIBC_2_2); > #endif > =20 > -#include > - > #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) > -versioned_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2); > +compat_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2); > strong_alias (___xstat64, __old__xstat64) > compat_symbol (libc, __old__xstat64, __xstat64, GLIBC_2_1); > #else > strong_alias (___xstat64, __xstat64) > +compat_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2); > #endif > + > +#endif /* SHLIB_COMPAT */ 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_/ROm.4G.x3Lbbz.Fcec+RJmt Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEgAyFJ+N6uu6+XupJAR8vZIA0zr0FAl8arJIACgkQAR8vZIA0 zr1DvQgAsMQzgpNDzsvyJ4xcKXilBGGiQYy0CVVz5+l32ir/L52ZTJtcJwcspR1W vBmwg46bER9ByIYJCiBshvdBk0P4Ses8gyaK4TkpWO7qjiQ5lK04ddVjkrQDA1aZ 3bwPit8huoXuJ6JGLCQMsKgGryIOwgYINrZBv8YQ/EX1nIj5RjsP0lpbGAfX0xom 963hsz5FCn68GZV8awBOKTjBxqzQHv+piYBrwe/zEjF8iYEx4qpWCfRMoO9q0DSo U/EHrcLbhovObmgPfwcD3HN8xDRTZuxGbLJQFBTvt29l0lp1PebJR6pYXTl5Srmr t9C1dwo4eoV+RoLvoQR0saNck6TKsw== =yTc5 -----END PGP SIGNATURE----- --Sig_/ROm.4G.x3Lbbz.Fcec+RJmt--