diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-07-16 14:06:51 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-10-09 17:02:06 -0300 |
commit | 8ed005daf0ab03e142500324a34087ce179ae78e (patch) | |
tree | 2541dfc11ce5fe84696c84266a1b2eb22fe2f571 /io/lstat64.c | |
parent | 428985c436f442e91e27173bccaf28f547233586 (diff) | |
download | glibc-8ed005daf0ab03e142500324a34087ce179ae78e.tar glibc-8ed005daf0ab03e142500324a34087ce179ae78e.tar.gz glibc-8ed005daf0ab03e142500324a34087ce179ae78e.tar.bz2 glibc-8ed005daf0ab03e142500324a34087ce179ae78e.zip |
Remove stat wrapper functions, move them to exported symbols
This patch removes the stat, stat64, lstat, lstat64, fstat, fstat64,
fstatat, and fstatat64 static wrapper and add the symbol on the libc
with the expected names.
Both the prototypes of the internal symbol linked by the static
wrappers and the inline redirectors are also removed from the installed
sys/stat.h header file. The wrapper implementation license LGPL
exception is also removed since it is no longer statically linked to
binaries.
Internally the _STAT_VER* definitions are moved to a arch-specific
xstatver.h file. The internal defines that redirects internals
{f}stat{at} to their {f}xstat{at} counterparts are removed for Linux
(!NO_RTLD_HIDDEN). Hurd still requires them since {f}stat{at} pulls
extra objects that makes the loader build fail otherwise (I haven't
dig into why exactly).
Checked with a build for all affected ABIs. I also checked on x86_64,
i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and s390x.
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Diffstat (limited to 'io/lstat64.c')
-rw-r--r-- | io/lstat64.c | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/io/lstat64.c b/io/lstat64.c index a890da71a8..0e571f6075 100644 --- a/io/lstat64.c +++ b/io/lstat64.c @@ -6,23 +6,6 @@ License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - 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 @@ -34,19 +17,11 @@ #include <sys/stat.h> -/* This definition is only used if inlining fails for this function; see - the last page of <sys/stat.h>. The real work is done by the `x' - function which is passed a version number argument. We arrange in the - makefile that when not inlined this function is always statically - linked; that way a dynamically-linked executable always encodes the - version number corresponding to the data structures it uses, so the `x' - functions in the shared library can adapt without needing to recompile - all callers. */ - -#undef lstat64 +#undef __lstat64 int -attribute_hidden -lstat64 (const char *file, struct stat64 *buf) +__lstat64 (const char *file, struct stat64 *buf) { return __lxstat64 (_STAT_VER, file, buf); } +hidden_def (__lstat64) +weak_alias (__lstat64, lstat64) |