This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.16-ports-merge-254-geaeffd0


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  eaeffd07f7bbf57d33fcea5c9f1c9a669a436023 (commit)
      from  c53d909c80a6c61a96e488b7efc0b1d41d56a4ea (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=eaeffd07f7bbf57d33fcea5c9f1c9a669a436023

commit eaeffd07f7bbf57d33fcea5c9f1c9a669a436023
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Aug 22 21:03:12 2012 +0000

    Clean up MIPS stat64 handling.

diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index dfab023..2d1ca84 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,12 @@
+2012-08-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/mips/kernel-features.h [_MIPS_SIM ==
+	_ABIO32] (__ASSUME_STAT64_SYSCALL): Define.
+	* sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c: New file.  Based
+	on version from ../sysdeps/unix/sysv/linux/.
+	* sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c: Likewise.
+	* sysdeps/unix/sysv/linux/mips/mips64/xstat64.c: Likewise.
+
 2012-08-16  Carlos O'Donell  <carlos_odonell@mentor.com>
 
 	* sysdeps/mips/ldsodefs.h (ARCH_PLTENTER_MEMBERS)
diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h b/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
index 62c1604..d318a31 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -25,6 +25,12 @@
 /* MIPS had the utimes syscall by 2.6.0.  */
 #define __ASSUME_UTIMES		1
 
+/* MIPS o32 had the stat64 syscalls by 2.6.0, but for n32 and n64 the
+   plain stat syscalls are 64-bit.  */
+#if _MIPS_SIM == _ABIO32
+# define __ASSUME_STAT64_SYSCALL	1
+#endif
+
 /* Support for the eventfd2 and signalfd4 syscalls was added in 2.6.27.  */
 #if __LINUX_KERNEL_VERSION >= 0x02061c
 # define __ASSUME_EVENTFD2	1
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
new file mode 100644
index 0000000..24b517e
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
@@ -0,0 +1,45 @@
+/* fxstat64 using 64-bit MIPS fstat system call.
+   Copyright (C) 1997-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/>.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file FD in BUF.  */
+
+int
+__fxstat64 (int vers, int fd, struct stat64 *buf)
+{
+  int result;
+  struct kernel_stat kbuf;
+
+  result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
+  if (result == 0)
+    result = __xstat64_conv (vers, &kbuf, buf);
+
+  return result;
+}
+
+hidden_def (__fxstat64)
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
new file mode 100644
index 0000000..71123f2
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
@@ -0,0 +1,44 @@
+/* lxstat64 using 64-bit MIPS lstat system call.
+   Copyright (C) 1997-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/>.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF.  */
+int
+__lxstat64 (int vers, const char *name, struct stat64 *buf)
+{
+  int result;
+  struct kernel_stat kbuf;
+
+  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
+  if (result == 0)
+    result = __xstat64_conv (vers, &kbuf, buf);
+
+  return result;
+}
+
+hidden_def (__lxstat64)
diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
new file mode 100644
index 0000000..b5bb936
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
@@ -0,0 +1,45 @@
+/* xstat64 using 64-bit MIPS stat system call.
+   Copyright (C) 1991-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/>.  */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <bp-checks.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF.  */
+
+int
+__xstat64 (int vers, const char *name, struct stat64 *buf)
+{
+  int result;
+  struct kernel_stat kbuf;
+
+  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
+  if (result == 0)
+    result = __xstat64_conv (vers, &kbuf, buf);
+
+  return result;
+}
+
+hidden_def (__xstat64)

-----------------------------------------------------------------------

Summary of changes:
 ports/ChangeLog.mips                               |    9 ++++
 .../sysdeps/unix/sysv/linux/mips/kernel-features.h |    6 +++
 .../sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c |   45 ++++++++++++++++++++
 .../sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c |   44 +++++++++++++++++++
 .../sysdeps/unix/sysv/linux/mips/mips64/xstat64.c  |   45 ++++++++++++++++++++
 5 files changed, 149 insertions(+), 0 deletions(-)
 create mode 100644 ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
 create mode 100644 ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
 create mode 100644 ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]