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-all mailing list