Skip to contentSkip to conversation

package/uclibc: add custom bits/poll.h for xtensa

PATCH New Max Filippov 4 participants 4 messages Dec 12, 2018 – Dec 16, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/uclibc: add custom bits/poll.h for xtensa

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

---
 .../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
package/uclibc/0002-xtensa-add-custom-bits-poll.h.patch new file +93 -0
new file mode 100644
index 000000000000..030938bbcd33
@@ -0,0 +1,93 @@
+From 0cae9700a4a421dc22c80d205fbae4d01fdd1356 Mon Sep 17 00:00:00 2001
+From: Max Filippov <[email protected]>
+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 <[email protected]>
+---
+ 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
+
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 package/uclibc: add custom bits/poll.h for xtensa

Hi Max,

Quoted 21 lines · Max Filippov

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");
   ^~~~~~~~~~~~~
Quoted 3 lines

Fixes:
http://autobuild.buildroot.net/results/5a0112b7a2c81fa5253c9adc93efe415256cd811

Fixing the autobuilder failures requires rebuild of the xtensa binary toolchain with this patch.

Thanks,
baruch

Quoted 107 lines
---
 .../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
package/uclibc/0002-xtensa-add-custom-bits-poll.h.patch new file +93 -0
new file mode 100644
index 000000000000..030938bbcd33
@@ -0,0 +1,93 @@
+From 0cae9700a4a421dc22c80d205fbae4d01fdd1356 Mon Sep 17 00:00:00 2001
+From: Max Filippov <[email protected]>
+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 <[email protected]>
+---
+ 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
+
Signature · 1 line
2.11.0
Signature · 3 lines
     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 -
#2 lore raw

PATCH 1/1 package/uclibc: add custom bits/poll.h for xtensa

In reply to Max Filippov

Hello,

Quoted 21 lines · Max Filippov

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");
   ^~~~~~~~~~~~~
Quoted 7 lines

Fixes:
http://autobuild.buildroot.net/results/5a0112b7a2c81fa5253c9adc93efe415256cd811

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

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#3 lore raw

PATCH 1/1 package/uclibc: add custom bits/poll.h for xtensa

In reply to Max Filippov
Quoted 23 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Max" == Max Filippov <[email protected]> writes:

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");
   ^~~~~~~~~~~~~
Quoted 3 lines

Fixes:
http://autobuild.buildroot.net/results/5a0112b7a2c81fa5253c9adc93efe415256cd811

Committed to 2018.02.x, 2018.08.x and 2018.11.x, thanks.

Signature · 1 line
Bye, Peter Korsgaard