From b38502d567163c0daa4a16474dcf22e71c2ed5fe Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 29 Oct 2018 20:36:01 +0000 Subject: [PATCH] t/grantpt /media/Stalin/tmp/glibc.hurd.gnu-2/libc_pic.os: In function `pts_name': /media/data/home/thomas/tmp/source/glibc/git/glibc.hurd/login/../sysdeps/unix/grantpt.c:52: undefined reference to `__ptsname_internal' collect2: ld returned 1 exit status make[1]: *** [/media/Stalin/tmp/glibc.hurd.gnu-2/libc.so] Error 1 Cf. aa9890239a2aef81e64f3f22a31c7e01b6501f69 Need any of the checks (stat, etc.) that Linux' __ptsname_internal does? Implement close_all_fds as in 139ee080b6b428240bf49f3e6361f3ac729f891a? Gbp-Pq: Topic hurd-i386 Gbp-Pq: Name git-grantpt.diff --- sysdeps/mach/hurd/ptsname.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/sysdeps/mach/hurd/ptsname.c b/sysdeps/mach/hurd/ptsname.c index 08748a36b..5c1dc6e98 100644 --- a/sysdeps/mach/hurd/ptsname.c +++ b/sysdeps/mach/hurd/ptsname.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -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.30.2