mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
1999-12-18 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/i386/setrlimit.c: Declare local variable result if necessary. * sysdeps/unix/sysv/linux/i386/bits/resource.h: Don't depend on the unreliable kernel headers. * sysdeps/unix/sysv/linux/bits/resource.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/resource.h: New file. * sysdeps/unix/sysv/linux/mips/bits/resource.h: New file. 1999-12-18 Andreas Jaeger <aj@suse.de> * config.make.in (datadir): Added. Closes PR libc/1491. Patch by dervishd@jazzfree.com. 1999-12-18 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/ftruncate64.c (ftruncate64): Save and set errno. * sysdeps/unix/sysv/linux/truncate64.c (truncate64): Likewise. 1999-12-18 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/fxstat64.c: Rewrite to use fstat64 syscall if available. * sysdeps/unix/sysv/linux/lxstat64.c: Likewise for lstat64. * sysdeps/unix/sysv/linux/xstat64.c: Likewise for stat64. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_STAT64_SYSCALL): New. 1999-12-17 Scott Bambrough <scottb@netwinder.org> * sysdeps/arm/dl-machine.h (CLEAR_CACHE): New macro to force a cache flush. * elf/dl-reloc.c (_dl_relocate_object): Add call to flush cache after .text segment fixups. 1999-12-16 Andreas Jaeger <aj@suse.de> * rt/aio.h: Remove erroneous __restrict declarations. 1999-12-18 Ulrich Drepper <drepper@cygnus.com> * scripts/rellns-sh: Find pwd program also in /usr/bin and let shell do the job if it is there neither. Patch by David R. Conrad <drc@adni.net> (PR libc/1485). 1999-12-16 Andreas Jaeger <aj@suse.de> * sysdeps/ieee754/bits/nan.h (NAN): Rename union to avoid duplicate definition with function __nan. Closes PR libc/1487 reported by <diana@kai.com>. * string/bits/string2.h (__strsep): Help gcc optimizing string access.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* lxstat64 using old-style Unix lstat system call.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998, 1999 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
|
||||
@ -25,20 +25,46 @@
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include <xstatconv.c>
|
||||
#if __ASSUME_STAT64_SYSCALL == 0
|
||||
# include <xstatconv.c>
|
||||
#endif
|
||||
|
||||
extern int __syscall_lstat (const char *, struct kernel_stat *);
|
||||
|
||||
#ifdef __NR_lstat64
|
||||
extern int __syscall_lstat64 (const char *, struct stat64 *);
|
||||
# if __ASSUME_STAT64_SYSCALL == 0
|
||||
/* The variable is shared between all wrappers around *stat64 calls. */
|
||||
extern int have_no_stat64;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Get information about the file NAME in BUF. */
|
||||
int
|
||||
__lxstat64 (int vers, const char *name, struct stat64 *buf)
|
||||
{
|
||||
#ifdef __ASSUME_STAT64_SYSCALL
|
||||
return INLINE_SYSCALL (lstat64, 2, name, &buf);
|
||||
#else
|
||||
struct kernel_stat kbuf;
|
||||
int result;
|
||||
# ifdef __NR_lstat64
|
||||
if (! have_no_stat64)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
result = INLINE_SYSCALL (lstat64, 2, name, &kbuf);
|
||||
|
||||
if (result != -1 || errno != ENOSYS)
|
||||
return result;
|
||||
|
||||
__set_errno (saved_errno);
|
||||
have_no_stat64 = 1;
|
||||
}
|
||||
# endif
|
||||
result = INLINE_SYSCALL (lstat, 2, name, &kbuf);
|
||||
if (result == 0)
|
||||
result = xstat64_conv (vers, &kbuf, buf);
|
||||
|
||||
return result;
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user