Skip to contentSkip to conversation

package/uclibc: Add eventfd_read() and eventfd_write()

PATCH New Bernd Kuhls 3 participants 7 messages Oct 24, 2014 – Dec 14, 2014

lore
Share & tools
lore
#0 lore raw

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
new file mode 100644
index 0000000..bfe02a7
@@ -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
#1 lore raw

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/1030119691a67511b6e9a27abdec474525de8d26

Runtime 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.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

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
#2 lore raw

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

#3 lore raw

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
#4 lore raw

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

#5 lore raw

PATCH 1/1 package/uclibc: Add eventfd_read() and eventfd_write()

In reply to Bernd Kuhls

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

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.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

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/1030119691a67511b6e9a27abdec474
525de8d26

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

[1] https://ssl.nettworks.org/bugs/browse/FFL-1084