package/uclibc: Add eventfd_read() and eventfd_write()
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
Needed for upcoming eventfd support in Kodi:
https://github.com/FernetMenta/xbmc/commit/1030119691a67511b6e9a27abdec474525de8d26
Runtime test was positive:
22:13:39 T:3035360160 NOTICE: Thread FDEventMonitor start, auto delete: false
Downloaded from Openembedded:
https://github.com/openembedded/oe-core/blob/master/meta/recipes-core/uclibc/uclibc-git/0001-Add-eventfd_read-and-eventfd_write.patch
This function needs CONFIG_EVENTFD enabled in kernel and the following line to be added to package/kodi/Config.in when the eventfd support becomes part of upstream:
depends on !BR2_TOOLCHAIN_EXTERNAL_UCLIBC
--- ...c-0065-Add-eventfd_read-and-eventfd_write.patch | 131 ++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 package/uclibc/0.9.33.2/uclibc-0065-Add-eventfd_read-and-eventfd_write.patch
package/uclibc/0.9.33.2/uclibc-0065-Add-eventfd_read-and-eventfd_write.patch new file +131 -0
@@ -0,0 +1,131 @@ +Add eventfd_read() and eventfd_write() + +Needed for upcoming eventfd support in Kodi: +https://github.com/FernetMenta/xbmc/commit/1030119691a67511b6e9a27abdec474525de8d26 + +Downloaded from Openembedded: +https://github.com/openembedded/oe-core/blob/master/meta/recipes-core/uclibc/uclibc-git/0001-Add-eventfd_read-and-eventfd_write.patch + +Signed-off-by: Bernd Kuhls <[email protected]> + + +From e3aae24ede969e2dede1aa19c2ee520cab71ce11 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Thu, 20 Feb 2014 00:30:18 -0800 +Subject: [PATCH 1/3] Add eventfd_read() and eventfd_write() + +Signed-off-by: Khem Raj <[email protected]> +Upstream-Status: Pending +--- + libc/sysdeps/linux/common/Makefile.in | 2 ++ + libc/sysdeps/linux/common/eventfd_read.c | 27 +++++++++++++++++++++++++++ + libc/sysdeps/linux/common/eventfd_write.c | 28 ++++++++++++++++++++++++++++ + libc/sysdeps/linux/common/sys/eventfd.h | 4 ---- + 4 files changed, 57 insertions(+), 4 deletions(-) + create mode 100644 libc/sysdeps/linux/common/eventfd_read.c + create mode 100644 libc/sysdeps/linux/common/eventfd_write.c + +diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in +index dbf0b0f..45d2e21 100644 +--- a/libc/sysdeps/linux/common/Makefile.in ++++ b/libc/sysdeps/linux/common/Makefile.in +@@ -25,6 +25,8 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \ + capset.c \ + dup3.c \ + eventfd.c \ ++ eventfd_read.c \ ++ eventfd_write.c \ + inotify.c \ + ioperm.c \ + iopl.c \ +diff --git a/libc/sysdeps/linux/common/eventfd_read.c b/libc/sysdeps/linux/common/eventfd_read.c +new file mode 100644 +index 0000000..75f2aaa +--- /dev/null ++++ b/libc/sysdeps/linux/common/eventfd_read.c +@@ -0,0 +1,27 @@ ++/* Copyright (C) 2007-2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <errno.h> ++#include <unistd.h> ++#include <sys/eventfd.h> ++ ++ ++int ++eventfd_read (int fd, eventfd_t *value) ++{ ++ return read (fd, value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0; ++} +diff --git a/libc/sysdeps/linux/common/eventfd_write.c b/libc/sysdeps/linux/common/eventfd_write.c +new file mode 100644 +index 0000000..e1509cf +--- /dev/null ++++ b/libc/sysdeps/linux/common/eventfd_write.c +@@ -0,0 +1,28 @@ ++/* Copyright (C) 2007-2014 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <errno.h> ++#include <unistd.h> ++#include <sys/eventfd.h> ++ ++ ++int ++eventfd_write (int fd, eventfd_t value) ++{ ++ return write (fd, &value, ++ sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0; ++} +diff --git a/libc/sysdeps/linux/common/sys/eventfd.h b/libc/sysdeps/linux/common/sys/eventfd.h +index 1bf785f..91b265b 100644 +--- a/libc/sysdeps/linux/common/sys/eventfd.h ++++ b/libc/sysdeps/linux/common/sys/eventfd.h +@@ -33,16 +33,12 @@ __BEGIN_DECLS + value to COUNT. */ + extern int eventfd (int __count, int __flags) __THROW; + +-#if 0 /* not (yet) implemented in uClibc */ +- + /* Read event counter and possibly wait for events. */ + extern int eventfd_read (int __fd, eventfd_t *__value); + + /* Increment event counter. */ + extern int eventfd_write (int __fd, eventfd_t __value); + +-#endif +- + __END_DECLS + + #endif /* sys/eventfd.h */ +-- +1.9.0 +
Signature · 1 line
1.7.10.4
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
Needed for upcoming eventfd support in Kodi:
https://github.com/FernetMenta/xbmc/commit/1030119691a67511b6e9a27abdec474525de8d26Runtime test was positive:
22:13:39 T:3035360160 NOTICE: Thread FDEventMonitor start, auto delete: false
Quoted 6 lines
Downloaded from Openembedded:
https://github.com/openembedded/oe-core/blob/master/meta/recipes-core/uclibc/uclibc-git/0001-Add-eventfd_read-and-eventfd_write.patchThis function needs
CONFIG_EVENTFDenabled in kernel and the following line to be added to package/kodi/Config.in when the eventfd support becomes part of upstream:
depends on !BR2_TOOLCHAIN_EXTERNAL_UCLIBC
Sorry, I don't like to carry feature patches (that aren't even in upstream git) to buildroot.
Is there any real reason to use uClibc with kodi? I would imagine that kodi is so big that the size difference betweeen uClibc and glibc doesn't really matter.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
Peter Korsgaard <[email protected]> wrote in
news:87wq7p57i0.fsf at dell.be.48ers.dk:
Quoted 1 line
Is there any real reason to use uClibc with kodi?
Hi,
yes, I am using kodi on an uClibc-based system (www.fli4l.de) and it works perfectly fine.
According to the commit log the patch I found was made to support systemd 209 with uClibc, not xbmc/kodi ;)
https://github.com/openembedded/oe-
core/commit/ef0adae63b4b9689c25ed7d84f2b09575c81ce83
Regards, Bernd
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Bernd" == Bernd Kuhls <[email protected]> writes:
Peter Korsgaard <[email protected]> wrote in
news:87wq7p57i0.fsf at dell.be.48ers.dk:Quoted 1 line
Is there any real reason to use uClibc with kodi?
Hi,
yes, I am using kodi on an uClibc-based system (www.fli4l.de) and it works perfectly fine.
I'm not questioning if it is possible given enough patches, but rather if it is worth the effort. Is there any specific reason why you are using uClibc instead of musl or glibc?
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
Peter Korsgaard <[email protected]> wrote in
news:874mur908x.fsf at dell.be.48ers.dk:
Quoted 2 lines
Is there any specific reason why you are using uClibc instead of musl or glibc?
Hi,
yes, the fli4l project is based on uclibc, a design choice where I have no control over, I am only adding my kodi package to it.
Regards, Bernd
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
In reply to Bernd KuhlsBernd, All,
On 2014-10-24 22:43 +0200, Bernd Kuhls spake thusly:
Quoted 2 lines
Needed for upcoming eventfd support in Kodi:
https://github.com/FernetMenta/xbmc/commit/1030119691a67511b6e9a27abdec474525de8d26
As Peter said, we do not like to carry feature patches in Buildroot.
If Kodi really requires eventfd, we'll have to mark it incompatible with uClibc in Buildroot. Kodi is already a big beast all by itself, so the oversize of glibc would not be that noticeable when compared to Kodi.
Also, your use-case is a bit weird: you said you're using the fli4l project to run Kodi on it. We failed to see the relation with Buildroot.
As such, we're marking this patch "Rejected" in Patchwork.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()
Hi,
"Yann E. MORIN" <[email protected]> wrote in news:20141208222547.GE4105 at free.fr:
Quoted 5 lines
Bernd, All,
On 2014-10-24 22:43 +0200, Bernd Kuhls spake thusly:
Quoted 2 lines
Needed for upcoming eventfd support in Kodi:
https://github.com/FernetMenta/xbmc/commit/1030119691a67511b6e9a27abdec474525de8d26
Quoted 6 lines
As Peter said, we do not like to carry feature patches in Buildroot.
If Kodi really requires eventfd, we'll have to mark it incompatible with uClibc in Buildroot. Kodi is already a big beast all by itself, so the oversize of glibc would not be that noticeable when compared to Kodi.
the patch I mentioned is currently not included in Kodi 14.0rc3-Helix so there is no need to either tweak dependencies or add my patch to uclibc atm. Let?s hope it will stay that way ;)
Quoted 2 lines
Also, your use-case is a bit weird: you said you're using the fli4l project to run Kodi on it. We failed to see the relation with Buildroot.
The build system for the fli4l project is based on buildroot, they regularly sync with upstream[1].
Regards, Bernd