+2002-09-27 Steven Munroe <sjmunroe@us.ibm.com>
+
+ * sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__WORDSIZE != 32]:
+ (_STAT_VER): Define to _STAT_VER_KERNEL.
+ (stru stat, struct stat64): Define to match the PPC64 kernel.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+ (libc: GLIBC_2.2): Remove __xstat64, __fxstat64, and __lxstat64.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist: Add kernel_stat.h.
+
+2002-10-02 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/unix/sysv/linux/xstatconv.c [STAT_IS_KERNEL_STAT]:
+ Conditionalize the function definitions on this.
+ * sysdeps/unix/sysv/linux/xstat.c (__xstat) [STAT_IS_KERNEL_STAT]:
+ Don't use xstat_conv, just fail if VERS != _STAT_VER_KERNEL.
+ * sysdeps/unix/sysv/linux/fxstat.c (__fxstat) [STAT_IS_KERNEL_STAT]:
+ Likewise.
+ * sysdeps/unix/sysv/linux/lxstat.c (__lxstat) [STAT_IS_KERNEL_STAT]:
+ Likewise.
+
2002-10-02 Ulrich Drepper <drepper@redhat.com>
* version.h (VERSION): Bump to 2.3.
* iconvdata/Makefile (distribute): Add TSCII.precomposed and
TSCII.irreversible.
- * Make-dist (dist): Create .bz2 file. Add rule to create .bz2
- files.
+ * Make-dist (dist): Create .bz2 file. Add rule to create .bz2 files.
Also distribute xtests sources.
2002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-/* Copyright (C) 1992,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ 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
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif
+#include <bits/wordsize.h>
+
/* Versions of the `struct stat' data structure. */
#define _STAT_VER_LINUX_OLD 1
#define _STAT_VER_KERNEL 1
#define _STAT_VER_SVR4 2
-#define _STAT_VER_LINUX 3
-#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+#if __WORDSIZE == 32
+# define _STAT_VER_LINUX 3
+# define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+#else
+# define _STAT_VER _STAT_VER_KERNEL /* The one defined below. */
+#endif
/* Versions of the `xmknod' interface. */
#define _MKNOD_VER_LINUX 1
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+#if __WORDSIZE == 32
+
struct stat
{
__dev_t st_dev; /* Device. */
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
unsigned short int __pad1;
__ino_t st_ino; /* File serial number. */
-#else
+# else
__ino64_t st_ino; /* File serial number. */
-#endif
+# endif
__mode_t st_mode; /* File mode. */
__nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group.*/
__dev_t st_rdev; /* Device number, if device. */
unsigned short int __pad2;
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
__off_t st_size; /* Size of file, in bytes. */
-#else
+# else
__off64_t st_size; /* Size of file, in bytes. */
-#endif
+# endif
__blksize_t st_blksize; /* Optimal block size for I/O. */
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
-#else
+# else
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
-#endif
+# endif
__time_t st_atime; /* Time of last access. */
- unsigned long int __unused1;
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
__time_t st_mtime; /* Time of last modification. */
- unsigned long int __unused2;
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
__time_t st_ctime; /* Time of last status change. */
- unsigned long int __unused3;
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
unsigned long int __unused4;
unsigned long int __unused5;
};
-#ifdef __USE_LARGEFILE64
+
+# ifdef __USE_LARGEFILE64
struct stat64
{
__dev_t st_dev; /* Device. */
unsigned short int __pad2;
__off64_t st_size; /* Size of file, in bytes. */
__blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
+ unsigned long int __unused4;
+ unsigned long int __unused5;
+ };
+# endif /* __USE_LARGEFILE64 */
+
+#else /* __WORDSIZE == 32 */
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+# ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __pad2;
+ __dev_t st_rdev; /* Device number, if device. */
+# ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+# else
+ __off64_t st_size; /* Size of file, in bytes. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+# ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+# else
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# endif
__time_t st_atime; /* Time of last access. */
- unsigned long int __unused1;
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
__time_t st_mtime; /* Time of last modification. */
- unsigned long int __unused2;
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
__time_t st_ctime; /* Time of last status change. */
- unsigned long int __unused3;
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
unsigned long int __unused4;
unsigned long int __unused5;
+ unsigned long int __unused6;
};
+
+# ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __pad2;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
+ unsigned long int __unused4;
+ unsigned long int __unused5;
+ unsigned long int __unused6;
+ };
+# endif /* __USE_LARGEFILE64 */
#endif
+
/* Tell code we have these members. */
#define _STATBUF_ST_BLKSIZE
#define _STATBUF_ST_RDEV