Restore MIPS n64 posix_fadvise64 export at GLIBC_2.3.3 (bug 14044).

This commit is contained in:
Joseph Myers 2012-05-01 08:48:54 -07:00
parent d353499456
commit 360f4e6880
3 changed files with 59 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2012-05-01 Joseph Myers <joseph@codesourcery.com>
[BZ #14044]
* sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c: Copy
from libc version and add symbol versions.
* sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilis
(GLIBC_2.3.3): Add posix_fadvise64.
2012-04-28 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/mips/mips32/nptl/ld.abilist: New file.

View File

@ -2045,6 +2045,7 @@ GLIBC_2.3.3
inet6_option_space F
nftw F
nftw64 F
posix_fadvise64 F
remap_file_pages F
sched_getaffinity F
sched_setaffinity F

View File

@ -1 +1,50 @@
#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c>
/* Copyright (C) 2003-2012 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
<http://www.gnu.org/licenses/>. */
#define posix_fadvise64 __no_posix_fadvise64
#include <errno.h>
#include <fcntl.h>
#include <sysdep.h>
#undef posix_fadvise64
/* Advice the system about the expected behaviour of the application with
respect to the file associated with FD. */
int
posix_fadvise (int fd, off_t offset, off_t len, int advise)
{
#ifdef __NR_fadvise64
INTERNAL_SYSCALL_DECL (err);
int ret = INTERNAL_SYSCALL (fadvise64, err, 4, fd, offset, len, advise);
if (INTERNAL_SYSCALL_ERROR_P (ret, err))
return INTERNAL_SYSCALL_ERRNO (ret, err);
return 0;
#else
return ENOSYS;
#endif
}
#include <shlib-compat.h>
#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
strong_alias (posix_fadvise, __posix_fadvise64_l32);
compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
strong_alias (posix_fadvise, __posix_fadvise64_l64);
versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
#else
strong_alias (posix_fadvise, posix_fadvise64);
#endif