git: 44c5db52e258 - main - Add eventfd(3) wrappers to libc.
Emmanuel Vadot
manu at bidouilliste.com
Mon Jan 4 19:26:14 UTC 2021
Hello,
This break devel/glib20
I don't have much info, just logs from two poudriere build :
https://people.freebsd.org/~manu/glib-2.66.4_1,1-7f4e724829.log
https://people.freebsd.org/~manu/glib-2.66.4_1,1-9dd48b87e6.log
Cheers,
On Sun, 27 Dec 2020 10:57:39 GMT
Konstantin Belousov <kib at FreeBSD.org> wrote:
> The branch main has been updated by kib:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=44c5db52e258aebed0c5d01047c79bc3d8487966
>
> commit 44c5db52e258aebed0c5d01047c79bc3d8487966
> Author: Konstantin Belousov <kib at FreeBSD.org>
> AuthorDate: 2020-12-23 14:16:35 +0000
> Commit: Konstantin Belousov <kib at FreeBSD.org>
> CommitDate: 2020-12-27 10:57:26 +0000
>
> Add eventfd(3) wrappers to libc.
>
> eventfd_read/write one-liners are from musl libc.
>
> Submitted by: greg at unrelenting.technology
> Reviewed by: markj (previous version)
> MFC after: 2 weeks
> Differential Revision: https://reviews.freebsd.org/D26668
> ---
> lib/libc/gen/Makefile.inc | 1 +
> lib/libc/gen/Symbol.map | 3 +++
> lib/libc/gen/eventfd.c | 54 +++++++++++++++++++++++++++++++++++++++++
> lib/libc/include/libc_private.h | 1 +
> lib/libc/sys/Makefile.inc | 3 +++
> 5 files changed, 62 insertions(+)
>
> diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc
> index c0d719371fc8..76a21975f1ac 100644
> --- a/lib/libc/gen/Makefile.inc
> +++ b/lib/libc/gen/Makefile.inc
> @@ -47,6 +47,7 @@ SRCS+= __getosreldate.c \
> err.c \
> errlst.c \
> errno.c \
> + eventfd.c \
> exec.c \
> exect.c \
> fdevname.c \
> diff --git a/lib/libc/gen/Symbol.map b/lib/libc/gen/Symbol.map
> index 2fb8e080de6a..c89eb63caada 100644
> --- a/lib/libc/gen/Symbol.map
> +++ b/lib/libc/gen/Symbol.map
> @@ -422,6 +422,9 @@ FBSD_1.5 {
> };
>
> FBSD_1.6 {
> + eventfd;
> + eventfd_read;
> + eventfd_write;
> getlogin_r;
> memalign;
> scandir_b;
> diff --git a/lib/libc/gen/eventfd.c b/lib/libc/gen/eventfd.c
> new file mode 100644
> index 000000000000..b757f82029a9
> --- /dev/null
> +++ b/lib/libc/gen/eventfd.c
> @@ -0,0 +1,54 @@
> +/*-
> + * SPDX-License-Identifier: MIT
> + *
> + * Copyright (c) 2005-2020 Rich Felker, et al.
> + * Copyright (c) 2020 Greg V
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining
> + * a copy of this software and associated documentation files (the
> + * "Software"), to deal in the Software without restriction, including
> + * without limitation the rights to use, copy, modify, merge, publish,
> + * distribute, sublicense, and/or sell copies of the Software, and to
> + * permit persons to whom the Software is furnished to do so, subject to
> + * the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be
> + * included in all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> + */
> +
> +#include <sys/cdefs.h>
> +__FBSDID("$FreeBSD$");
> +
> +#include "namespace.h"
> +#include <sys/eventfd.h>
> +#include <sys/specialfd.h>
> +#include <unistd.h>
> +#include "un-namespace.h"
> +#include "libc_private.h"
> +
> +int eventfd(unsigned int initval, int flags)
> +{
> + struct specialfd_eventfd args;
> +
> + args.initval = initval;
> + args.flags = flags;
> + return (__sys___specialfd(SPECIALFD_EVENTFD, &args, sizeof(args)));
> +}
> +
> +int eventfd_read(int fd, eventfd_t *value)
> +{
> + return (sizeof(*value) == _read(fd, value, sizeof(*value)) ? 0 : -1);
> +}
> +
> +int eventfd_write(int fd, eventfd_t value)
> +{
> + return (sizeof(value) == _write(fd, &value, sizeof(value)) ? 0 : -1);
> +}
> diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h
> index 21f5b1762eb4..d26c78c21c07 100644
> --- a/lib/libc/include/libc_private.h
> +++ b/lib/libc/include/libc_private.h
> @@ -382,6 +382,7 @@ int __sys_sigtimedwait(const __sigset_t *, struct __siginfo *,
> const struct timespec *);
> int __sys_sigwait(const __sigset_t *, int *);
> int __sys_sigwaitinfo(const __sigset_t *, struct __siginfo *);
> +int __sys___specialfd(int, const void *, __size_t);
> int __sys_statfs(const char *, struct statfs *);
> int __sys_swapcontext(struct __ucontext *,
> const struct __ucontext *);
> diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc
> index 38156ccf507d..d43a59719563 100644
> --- a/lib/libc/sys/Makefile.inc
> +++ b/lib/libc/sys/Makefile.inc
> @@ -178,6 +178,7 @@ MAN+= abort2.2 \
> cpuset_getaffinity.2 \
> cpuset_getdomain.2 \
> dup.2 \
> + eventfd.2 \
> execve.2 \
> _exit.2 \
> extattr_get_file.2 \
> @@ -379,6 +380,8 @@ MLINKS+=cpuset.2 cpuset_getid.2 \
> MLINKS+=cpuset_getaffinity.2 cpuset_setaffinity.2
> MLINKS+=cpuset_getdomain.2 cpuset_setdomain.2
> MLINKS+=dup.2 dup2.2
> +MLINKS+=eventfd.2 eventfd_read.3 \
> + eventfd.2 eventfd_write.3
> MLINKS+=execve.2 fexecve.2
> MLINKS+=extattr_get_file.2 extattr.2 \
> extattr_get_file.2 extattr_delete_fd.2 \
--
Emmanuel Vadot <manu at bidouilliste.com>
More information about the dev-commits-src-main
mailing list