This is the mail archive of the libc-alpha@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]

[hurd,commited] hurd: Fix build on missing __ptsname_internal function


	* sysdeps/mach/hurd/ptsname.c: Include <sys/stat.h>.
	(__ptsname_r): Move implementation to...
	(__ptsname_internal): ... new function.  Add filling the STP
	structure.
---
 ChangeLog                   |  4 ++++
 sysdeps/mach/hurd/ptsname.c | 23 +++++++++++++++++++----
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index fdf0e469bb..4e8411f9bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,10 @@
 	* mach/Makefile (headers): Add mach/param.h.
 	* sysdeps/mach/hurd/bits/param.h: Include <mach/param.h>.
 	* sysdeps/mach/i386/mach/param.h: New file, defines EXEC_PAGESIZE
+	* sysdeps/mach/hurd/ptsname.c: Include <sys/stat.h>.
+	(__ptsname_r): Move implementation to...
+	(__ptsname_internal): ... new function.  Add filling the STP
+	structure.
 
 2018-02-17  John David Anglin  <danglin@gcc.gnu.org>
 
diff --git a/sysdeps/mach/hurd/ptsname.c b/sysdeps/mach/hurd/ptsname.c
index 08748a36b2..5c1dc6e981 100644
--- a/sysdeps/mach/hurd/ptsname.c
+++ b/sysdeps/mach/hurd/ptsname.c
@@ -18,6 +18,7 @@
 
 #include <errno.h>
 #include <string.h>
+#include <sys/stat.h>
 #include <hurd.h>
 #include <hurd/fd.h>
 #include <hurd/term.h>
@@ -38,11 +39,9 @@ ptsname (int fd)
 }
 
 
-/* Store at most BUFLEN characters of the pathname of the slave pseudo
-   terminal associated with the master FD is open on in BUF.
-   Return 0 on success, otherwise an error number.  */
+/* We don't need STP, but fill it for conformity with the Linux version...  */
 int
-__ptsname_r (int fd, char *buf, size_t buflen)
+__ptsname_internal (int fd, char *buf, size_t buflen, struct stat64 *stp)
 {
   string_t peername;
   size_t len;
@@ -58,7 +57,23 @@ __ptsname_r (int fd, char *buf, size_t buflen)
       return ERANGE;
     }
 
+  if (stp)
+    {
+      if (__xstat64 (_STAT_VER, peername, stp) < 0)
+	return errno;
+    }
+
   memcpy (buf, peername, len);
   return 0;
 }
+
+
+/* Store at most BUFLEN characters of the pathname of the slave pseudo
+   terminal associated with the master FD is open on in BUF.
+   Return 0 on success, otherwise an error number.  */
+int
+__ptsname_r (int fd, char *buf, size_t buflen)
+{
+  return __ptsname_internal (fd, buf, buflen, NULL);
+}
 weak_alias (__ptsname_r, ptsname_r)
-- 
2.16.1


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