#16679: XMail package error Failed to create for eventfd
-------------------------+----------------------------------
  Reporter:  skonvols2k  |      Owner:  developers
      Type:  defect      |     Status:  new
  Priority:  normal      |  Milestone:  Chaos Calmer (trunk)
 Component:  packages    |    Version:  Trunk
Resolution:              |   Keywords:
-------------------------+----------------------------------

Comment (by НКВД):

 Replying to [comment:4 НКВД]:
 > Doing a backport of uClibc master git commit
 
[http://git.uclibc.org/uClibc/commit/?id=fd355bc1dbcb794ae1abf0fad1459e28d8567ba0
 fd355bc1dbcb794ae1abf0fad1459e28d8567ba0] should fix this problem.

 Here is the backported patch:

 {{{
 Index: toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch
 ===================================================================
 diff --git
 a/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch
 b/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch
 new file mode 100644
 --- /dev/null
 +++ b/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch
 @@ -0,0 +1,269 @@
 +From fd355bc1dbcb794ae1abf0fad1459e28d8567ba0 Mon Sep 17 00:00:00 2001
 +From: Hiroaki KAWAI <[email protected]>
 +Date: Fri, 19 Apr 2013 01:09:35 +0000
 +Subject: eventfd.h: Use new "bits/" scheme for arch-specific flags
 +
 +As in timerfd.h, eventfd.h needs arch-specific definition files.
 +alpha, mips and sparc needs separate file, all the other arch
 +will use common definition.
 +
 +This problem is already fixed in glibc.
 +
 +Also sanitize and provide bits for hppa.
 +Make sure not to install the new bits/eventfd unless eventfd support is
 +enabled.
 +
 +Signed-off-by: Hiroaki KAWAI <[email protected]>
 +Signed-off-by: Bernhard Reutner-Fischer <[email protected]>
 +---
 +diff --git a/Makefile.in b/Makefile.in
 +index 3d3ba3d..da865db 100644
 +--- a/Makefile.in
 ++++ b/Makefile.in
 +@@ -272,6 +272,7 @@ HEADERS_RM-$(UCLIBC_HAS_XATTR)               +=
 sys/xattr.h
 + HEADERS_RM-$(UCLIBC_HAS_XLOCALE)             += xlocale.h
 + HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC)          += sys/eventfd.h
 sys/fsuid.h \
 +       bits/inotify.h \
 ++      bits/eventfd.h \
 +       sys/inotify.h \
 +       sys/kdaemon.h \
 +       sys/perm.h \
 +diff --git a/libc/sysdeps/linux/alpha/bits/eventfd.h
 b/libc/sysdeps/linux/alpha/bits/eventfd.h
 +new file mode 100644
 +index 0000000..b5a7e41
 +--- /dev/null
 ++++ b/libc/sysdeps/linux/alpha/bits/eventfd.h
 +@@ -0,0 +1,31 @@
 ++/* Copyright (C) 2007-2013 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/>.  */
 ++
 ++#ifndef       _SYS_EVENTFD_H
 ++# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h>
 instead."
 ++#endif
 ++
 ++/* Flags for eventfd.  */
 ++enum
 ++  {
 ++    EFD_SEMAPHORE = 000000001,
 ++#define EFD_SEMAPHORE EFD_SEMAPHORE
 ++    EFD_CLOEXEC   = 010000000,
 ++#define EFD_CLOEXEC EFD_CLOEXEC
 ++    EFD_NONBLOCK  = 000000004
 ++#define EFD_NONBLOCK EFD_NONBLOCK
 ++  };
 +diff --git a/libc/sysdeps/linux/common/bits/eventfd.h
 b/libc/sysdeps/linux/common/bits/eventfd.h
 +new file mode 100644
 +index 0000000..ef49c61
 +--- /dev/null
 ++++ b/libc/sysdeps/linux/common/bits/eventfd.h
 +@@ -0,0 +1,31 @@
 ++/* Copyright (C) 2007-2013 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/>.  */
 ++
 ++#ifndef       _SYS_EVENTFD_H
 ++# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h>
 instead."
 ++#endif
 ++
 ++/* Flags for eventfd.  */
 ++enum
 ++  {
 ++    EFD_SEMAPHORE = 00000001,
 ++#define EFD_SEMAPHORE EFD_SEMAPHORE
 ++    EFD_CLOEXEC = 02000000,
 ++#define EFD_CLOEXEC EFD_CLOEXEC
 ++    EFD_NONBLOCK = 00004000
 ++#define EFD_NONBLOCK EFD_NONBLOCK
 ++  };
 +diff --git a/libc/sysdeps/linux/common/sys/eventfd.h
 b/libc/sysdeps/linux/common/sys/eventfd.h
 +index c46c2a5..1bf785f 100644
 +--- a/libc/sysdeps/linux/common/sys/eventfd.h
 ++++ b/libc/sysdeps/linux/common/sys/eventfd.h
 +@@ -1,4 +1,4 @@
 +-/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
 ++/* Copyright (C) 2007-2013 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
 +@@ -21,21 +21,12 @@
 +
 + #include <stdint.h>
 +
 ++/* Get the platform-dependent flags.  */
 ++#include <bits/eventfd.h>
 +
 + /* Type for event counter.  */
 + typedef uint64_t eventfd_t;
 +
 +-/* Flags for signalfd.  */
 +-enum
 +-  {
 +-    EFD_SEMAPHORE = 1,
 +-#define EFD_SEMAPHORE EFD_SEMAPHORE
 +-    EFD_CLOEXEC = 02000000,
 +-#define EFD_CLOEXEC EFD_CLOEXEC
 +-    EFD_NONBLOCK = 04000
 +-#define EFD_NONBLOCK EFD_NONBLOCK
 +-  };
 +-
 +
 + __BEGIN_DECLS
 +
 +@@ -43,6 +34,16 @@ __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 */
 +diff --git a/libc/sysdeps/linux/hppa/bits/eventfd.h
 b/libc/sysdeps/linux/hppa/bits/eventfd.h
 +new file mode 100644
 +index 0000000..6182c07
 +--- /dev/null
 ++++ b/libc/sysdeps/linux/hppa/bits/eventfd.h
 +@@ -0,0 +1,32 @@
 ++/* Copyright (C) 2007-2013 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/>.  */
 ++
 ++#ifndef       _SYS_EVENTFD_H
 ++# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h>
 instead."
 ++#endif
 ++
 ++/* Flags for signalfd.  */
 ++enum
 ++  {
 ++    EFD_SEMAPHORE = 000000001,
 ++#define EFD_SEMAPHORE EFD_SEMAPHORE
 ++    EFD_CLOEXEC   = 010000000,
 ++#define EFD_CLOEXEC EFD_CLOEXEC
 ++/* the below value looks suspicious, should be 000200004 for consistency
 */
 ++    EFD_NONBLOCK  = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
 ++#define EFD_NONBLOCK EFD_NONBLOCK
 ++  };
 +diff --git a/libc/sysdeps/linux/mips/bits/eventfd.h
 b/libc/sysdeps/linux/mips/bits/eventfd.h
 +new file mode 100644
 +index 0000000..17b2f46
 +--- /dev/null
 ++++ b/libc/sysdeps/linux/mips/bits/eventfd.h
 +@@ -0,0 +1,31 @@
 ++/* Copyright (C) 2007-2013 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/>.  */
 ++
 ++#ifndef       _SYS_EVENTFD_H
 ++# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h>
 instead."
 ++#endif
 ++
 ++/* Flags for eventfd.  */
 ++enum
 ++  {
 ++    EFD_SEMAPHORE = 00000001,
 ++#define EFD_SEMAPHORE EFD_SEMAPHORE
 ++    EFD_CLOEXEC = 02000000,
 ++#define EFD_CLOEXEC EFD_CLOEXEC
 ++    EFD_NONBLOCK = 00000200
 ++#define EFD_NONBLOCK EFD_NONBLOCK
 ++  };
 +diff --git a/libc/sysdeps/linux/sparc/bits/eventfd.h
 b/libc/sysdeps/linux/sparc/bits/eventfd.h
 +new file mode 100644
 +index 0000000..bed9f09
 +--- /dev/null
 ++++ b/libc/sysdeps/linux/sparc/bits/eventfd.h
 +@@ -0,0 +1,31 @@
 ++/* Copyright (C) 2007-2013 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/>.  */
 ++
 ++#ifndef       _SYS_EVENTFD_H
 ++# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h>
 instead."
 ++#endif
 ++
 ++/* Flags for eventfd.  */
 ++enum
 ++  {
 ++    EFD_SEMAPHORE = 1,
 ++#define EFD_SEMAPHORE EFD_SEMAPHORE
 ++    EFD_CLOEXEC = 0x400000,
 ++#define EFD_CLOEXEC EFD_CLOEXEC
 ++    EFD_NONBLOCK = 0x004000
 ++#define EFD_NONBLOCK EFD_NONBLOCK
 ++  };
 +--
 +cgit v0.9.1
 }}}

--
Ticket URL: <https://dev.openwrt.org/ticket/16679#comment:5>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets

Reply via email to