From: Samuel Thibault <samuel.thibault@gnu.org>
To: libc-alpha@sourceware.org
Cc: commit-hurd@gnu.org
Subject: Re: [PATCH] Rearrange bsd_getpt vs bsd_openpt and implement posix_openbt on BSD
Date: Wed, 27 May 2020 11:16:03 +0200 [thread overview]
Message-ID: <20200527091603.nnie4tluftke76dh@function> (raw)
In-Reply-To: <20200526204300.10337-1-samuel.thibault@ens-lyon.org>
(Sorry, exchanged the two file names while writing the changelog)
Samuel Thibault, le mar. 26 mai 2020 22:43:00 +0200, a ecrit:
> * sysdeps/unix/sysv/linux/getpt.c (__getpt): Add oflag parameter, pass
> it to the _open call and rename to...
> (__bsd_openpt): ... new function.
> [!HAVE_GETPT] (__getpt): Reimplement on top of __bsd_openpt.
> (__posix_openpt): Replace stub with implementation on top of __bsd_openpt.
> (posix_openpt): Remove stub warning.
that was for sysdeps/unix/bsd/getpt.c
> * sysdeps/unix/bsd/getpt.c (__bsd_getpt): Replace prototype with
> __bsd_openpt prototype.
> (__getpt): Use __bsd_openpt instead of __bsd_getpt (as fallback when
> _posix_openpt fails).
> (getpt): Add alias
> (__getpt): Do not define.
> (HAVE_GETPT): Define.
and that was for sysdeps/unix/sysv/linux/getpt.c
> ---
> sysdeps/unix/bsd/getpt.c | 18 ++++++++++--------
> sysdeps/unix/sysv/linux/getpt.c | 7 ++++---
> 2 files changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c
> index 75489aef28..45c91005af 100644
> --- a/sysdeps/unix/bsd/getpt.c
> +++ b/sysdeps/unix/bsd/getpt.c
> @@ -41,7 +41,7 @@ const char __libc_ptyname2[] attribute_hidden = PTYNAME2;
>
> /* Open a master pseudo terminal and return its file descriptor. */
> int
> -__getpt (void)
> +__bsd_openpt (int oflag)
> {
> char buf[sizeof (_PATH_PTY) + 2];
> const char *p, *q;
> @@ -61,7 +61,7 @@ __getpt (void)
>
> s[1] = *q;
>
> - fd = __open (buf, O_RDWR);
> + fd = __open (buf, oflag);
> if (fd != -1)
> return fd;
>
> @@ -74,18 +74,20 @@ __getpt (void)
> return -1;
> }
>
> -#undef __getpt
> +#ifndef HAVE_GETPT
> +int
> +__getpt (void)
> +{
> + return __bsd_openpt (O_RDWR);
> +}
> weak_alias (__getpt, getpt)
> +#endif
>
> #ifndef HAVE_POSIX_OPENPT
> -/* We cannot define posix_openpt in general for BSD systems. */
> int
> __posix_openpt (int oflag)
> {
> - __set_errno (ENOSYS);
> - return -1;
> + return __bsd_openpt (oflag);
> }
> weak_alias (__posix_openpt, posix_openpt)
> -
> -stub_warning (posix_openpt)
> #endif
> diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c
> index 1803b232c9..3785f90db0 100644
> --- a/sysdeps/unix/sysv/linux/getpt.c
> +++ b/sysdeps/unix/sysv/linux/getpt.c
> @@ -31,7 +31,7 @@
> #define _PATH_DEVPTS _PATH_DEV "pts"
>
> /* Prototype for function that opens BSD-style master pseudo-terminals. */
> -extern int __bsd_getpt (void) attribute_hidden;
> +extern int __bsd_openpt (int oflag) attribute_hidden;
>
> /* Open a master pseudo terminal and return its file descriptor. */
> int
> @@ -88,14 +88,15 @@ __getpt (void)
> {
> int fd = __posix_openpt (O_RDWR);
> if (fd == -1)
> - fd = __bsd_getpt ();
> + fd = __bsd_openpt (O_RDWR);
> return fd;
> }
> +weak_alias (__getpt, getpt)
>
>
> #define PTYNAME1 "pqrstuvwxyzabcde";
> #define PTYNAME2 "0123456789abcdef";
>
> -#define __getpt __bsd_getpt
> +#define HAVE_GETPT
> #define HAVE_POSIX_OPENPT
> #include <sysdeps/unix/bsd/getpt.c>
> --
> 2.26.2
>
--
Samuel
<m> argh, pi est plus grand que 2. Ca casse tout
-+- #ens-mim -+-
next prev parent reply other threads:[~2020-05-27 9:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-26 20:43 [PATCH] Rearrange bsd_getpt vs bsd_openpt and implement posix_openbt on BSD Samuel Thibault
2020-05-27 9:16 ` Samuel Thibault [this message]
2020-05-27 9:37 ` Florian Weimer via Libc-alpha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200527091603.nnie4tluftke76dh@function \
--to=samuel.thibault@gnu.org \
--cc=commit-hurd@gnu.org \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).