summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/stat.h114
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h21
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c1
8 files changed, 145 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index c8c4ec982b..fc484ca493 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+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.
@@ -12,8 +36,7 @@
* 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>
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
index fa3df6e27b..c85695e511 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
@@ -1,4 +1,5 @@
-/* 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
@@ -20,12 +21,18 @@
# 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
@@ -33,44 +40,47 @@
#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. */
@@ -83,19 +93,85 @@ struct stat64
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
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist
index 738b9cc542..381f878080 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist
@@ -1 +1,2 @@
clone.S
+kernel_stat.h
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
index 0026730c17..c3f9daad4c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -1,7 +1,6 @@
libc {
GLIBC_2.2 {
# functions used in other libraries
- __xstat64; __fxstat64; __lxstat64;
# g*
glob64;
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c
new file mode 100644
index 0000000000..9eff9ebeb7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c
@@ -0,0 +1 @@
+/* fxstat64 is in fxstat.c */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
new file mode 100644
index 0000000000..8a43ea4a1d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
@@ -0,0 +1,21 @@
+/* Definition of `struct stat' used in the kernel.
+ Copyright (C) 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
+ 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#define STAT_IS_KERNEL_STAT 1
+#define XSTAT_IS_XSTAT64 1
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c
new file mode 100644
index 0000000000..bb5dbd0fff
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c
@@ -0,0 +1 @@
+/* lxstat64 is in lxstat.c */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c
new file mode 100644
index 0000000000..e7acd3b45e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c
@@ -0,0 +1 @@
+/* xstat64 is in xstat.c */