[Buildroot] [PATCH] package/uclibc: add custom bits/poll.h for xtensa
Baruch Siach
baruch at tkos.co.il
Wed Dec 12 15:55:38 UTC 2018
Hi Max,
On Wed, Dec 12, 2018 at 07:13:14AM -0800, Max Filippov wrote:
> Definitions of POLLWRNORM, POLLWRBAND and POLLREMOVE in xtensa linux
> kernel are non-standard. Provide bits/poll.h with correct values for
> these constants for uclibc-ng.
>
> This fixes the following strace build errors:
>
> In file included from xlat/pollflags.h:4:0,
> from poll.c:34:
> ./static_assert.h:40:24: error: static assertion failed: "POLLWRBAND != 0x0100"
> # define static_assert _Static_assert
> ^
> xlat/pollflags.h:75:1: note: in expansion of macro ‘static_assert’
> static_assert((POLLWRBAND) == (0x0100), "POLLWRBAND != 0x0100");
> ^~~~~~~~~~~~~
> ./static_assert.h:40:24: error: static assertion failed: "POLLREMOVE != 0x0800"
> # define static_assert _Static_assert
> ^
> xlat/pollflags.h:117:1: note: in expansion of macro ‘static_assert’
> static_assert((POLLREMOVE) == (0x0800), "POLLREMOVE != 0x0800");
> ^~~~~~~~~~~~~
>
> Fixes:
> http://autobuild.buildroot.net/results/5a0112b7a2c81fa5253c9adc93efe415256cd811
> Signed-off-by: Max Filippov <jcmvbkbc at gmail.com>
Reviewed-by: Baruch Siach <baruch at tkos.co.il>
Fixing the autobuilder failures requires rebuild of the xtensa binary
toolchain with this patch.
Thanks,
baruch
> ---
> .../0002-xtensa-add-custom-bits-poll.h.patch | 93 ++++++++++++++++++++++
> 1 file changed, 93 insertions(+)
> create mode 100644 package/uclibc/0002-xtensa-add-custom-bits-poll.h.patch
>
> diff --git a/package/uclibc/0002-xtensa-add-custom-bits-poll.h.patch b/package/uclibc/0002-xtensa-add-custom-bits-poll.h.patch
> new file mode 100644
> index 000000000000..030938bbcd33
> --- /dev/null
> +++ b/package/uclibc/0002-xtensa-add-custom-bits-poll.h.patch
> @@ -0,0 +1,93 @@
> +From 0cae9700a4a421dc22c80d205fbae4d01fdd1356 Mon Sep 17 00:00:00 2001
> +From: Max Filippov <jcmvbkbc at gmail.com>
> +Date: Wed, 12 Dec 2018 06:58:01 -0800
> +Subject: [PATCH] xtensa: add custom bits/poll.h
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Definitions of POLLWRNORM, POLLWRBAND and POLLREMOVE in xtensa linux
> +kernel are non-standard. Provide bits/poll.h with correct values for
> +these constants.
> +
> +This fixes the following strace build errors:
> +
> + In file included from xlat/pollflags.h:4:0,
> + from poll.c:34:
> + ./static_assert.h:40:24: error: static assertion failed: "POLLWRBAND != 0x0100"
> + # define static_assert _Static_assert
> + ^
> + xlat/pollflags.h:75:1: note: in expansion of macro ‘static_assert’
> + static_assert((POLLWRBAND) == (0x0100), "POLLWRBAND != 0x0100");
> + ^~~~~~~~~~~~~
> + ./static_assert.h:40:24: error: static assertion failed: "POLLREMOVE != 0x0800"
> + # define static_assert _Static_assert
> + ^
> + xlat/pollflags.h:117:1: note: in expansion of macro ‘static_assert’
> + static_assert((POLLREMOVE) == (0x0800), "POLLREMOVE != 0x0800");
> + ^~~~~~~~~~~~~
> +
> +Signed-off-by: Max Filippov <jcmvbkbc at gmail.com>
> +---
> + libc/sysdeps/linux/xtensa/bits/poll.h | 49 +++++++++++++++++++++++++++++++++++
> + 1 file changed, 49 insertions(+)
> + create mode 100644 libc/sysdeps/linux/xtensa/bits/poll.h
> +
> +diff --git a/libc/sysdeps/linux/xtensa/bits/poll.h b/libc/sysdeps/linux/xtensa/bits/poll.h
> +new file mode 100644
> +index 000000000000..4588cc326006
> +--- /dev/null
> ++++ b/libc/sysdeps/linux/xtensa/bits/poll.h
> +@@ -0,0 +1,49 @@
> ++/* Copyright (C) 1997, 2001, 2006 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_POLL_H
> ++# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
> ++#endif
> ++
> ++/* Event types that can be polled for. These bits may be set in `events'
> ++ to indicate the interesting event types; they will appear in `revents'
> ++ to indicate the status of the file descriptor. */
> ++#define POLLIN 0x001 /* There is data to read. */
> ++#define POLLPRI 0x002 /* There is urgent data to read. */
> ++#define POLLOUT 0x004 /* Writing now will not block. */
> ++
> ++#ifdef __USE_XOPEN
> ++/* These values are defined in XPG4.2. */
> ++# define POLLRDNORM 0x040 /* Normal data may be read. */
> ++# define POLLRDBAND 0x080 /* Priority data may be read. */
> ++# define POLLWRNORM POLLOUT /* Writing now will not block. */
> ++# define POLLWRBAND 0x100 /* Priority data may be written. */
> ++#endif
> ++
> ++#ifdef __USE_GNU
> ++/* These are extensions for Linux. */
> ++# define POLLMSG 0x400
> ++# define POLLREMOVE 0x800
> ++# define POLLRDHUP 0x2000
> ++#endif
> ++
> ++/* Event types always implicitly polled for. These bits need not be set in
> ++ `events', but they will appear in `revents' to indicate the status of
> ++ the file descriptor. */
> ++#define POLLERR 0x008 /* Error condition. */
> ++#define POLLHUP 0x010 /* Hung up. */
> ++#define POLLNVAL 0x020 /* Invalid polling request. */
> +--
> +2.11.0
> +
> --
> 2.11.0
>
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
More information about the buildroot
mailing list