--- /dev/null
+From 0cae9700a4a421dc22c80d205fbae4d01fdd1356 Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@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@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
+