summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-07-12 11:27:59 +0100
committerSam James <sam@gentoo.org>2024-07-12 11:28:31 +0100
commit74eff9db04a287c732e2ca62c79a8322df53092d (patch)
tree07f086043365033f6a132a5fad551bb25a9528d1 /www-servers
parentmedia-video/pipewire: add 1.2.1 (diff)
downloadgentoo-74eff9db04a287c732e2ca62c79a8322df53092d.tar.gz
gentoo-74eff9db04a287c732e2ca62c79a8322df53092d.tar.bz2
gentoo-74eff9db04a287c732e2ca62c79a8322df53092d.zip
www-servers/lighttpd: fix build on sparc for 1.4.76
I'd previously fixed 1.4.75 and assumed the fix was in 1.4.76. Closes: https://bugs.gentoo.org/935832 Bug: https://bugs.gentoo.org/931305 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'www-servers')
-rw-r--r--www-servers/lighttpd/files/lighttpd-1.4.76-sparc.patch111
-rw-r--r--www-servers/lighttpd/lighttpd-1.4.76-r1.ebuild4
-rw-r--r--www-servers/lighttpd/lighttpd-1.4.76.ebuild4
3 files changed, 119 insertions, 0 deletions
diff --git a/www-servers/lighttpd/files/lighttpd-1.4.76-sparc.patch b/www-servers/lighttpd/files/lighttpd-1.4.76-sparc.patch
new file mode 100644
index 000000000000..48568889a661
--- /dev/null
+++ b/www-servers/lighttpd/files/lighttpd-1.4.76-sparc.patch
@@ -0,0 +1,111 @@
+https://github.com/lighttpd/lighttpd1.4/commit/88ff3763dae65371eab9f8a22ac1c95c96fe4490
+https://github.com/lighttpd/lighttpd1.4/commit/524614455554163ec78b27b89ff52bbf7fe96958
+
+From 88ff3763dae65371eab9f8a22ac1c95c96fe4490 Mon Sep 17 00:00:00 2001
+From: Glenn Strauss <gstrauss@gluelogic.com>
+Date: Tue, 23 Apr 2024 00:16:29 -0400
+Subject: [PATCH] Revert "[core] special value for Linux POLLRDHUP on SPARC"
+ (fixes #3251)
+
+This reverts commit f14f9142f4487704e2ce0f196263c091accdb12c.
+
+x-ref:
+ "[1.4.76] buildroot compile error with bootlin-sparc{64-g,-uc}libc"
+ https://redmine.lighttpd.net/issues/3251
+---
+ src/fdevent.h | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/fdevent.h b/src/fdevent.h
+index e9c380b0f..1b0a062fc 100644
+--- a/src/fdevent.h
++++ b/src/fdevent.h
+@@ -40,8 +40,6 @@ struct fdnode_st {
+ #if (defined(__sun) && defined(__SVR4)) /* Solaris */ \
+ || defined(__FreeBSD__)
+ #define FDEVENT_RDHUP 0x4000
+-#elif (defined(__linux__) && (defined(__sparc__) || defined(__sparc)))
+-#define FDEVENT_RDHUP 0x0800
+ #else
+ #define FDEVENT_RDHUP 0x2000
+ #endif
+
+From 524614455554163ec78b27b89ff52bbf7fe96958 Mon Sep 17 00:00:00 2001
+From: Glenn Strauss <gstrauss@gluelogic.com>
+Date: Wed, 24 Apr 2024 03:07:37 -0400
+Subject: [PATCH] [core] special value for Linux POLLRDHUP on SPARC (fixes
+ #3251)
+
+x-ref:
+ "[1.4.76] buildroot compile error with bootlin-sparc{64-g,-uc}libc"
+ https://redmine.lighttpd.net/issues/3251
+---
+ src/fdevent.h | 2 ++
+ src/fdevent_impl.c | 18 ++++++++++++++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/src/fdevent.h b/src/fdevent.h
+index 1b0a062fc..556a14455 100644
+--- a/src/fdevent.h
++++ b/src/fdevent.h
+@@ -40,6 +40,8 @@ struct fdnode_st {
+ #if (defined(__sun) && defined(__SVR4)) /* Solaris */ \
+ || defined(__FreeBSD__)
+ #define FDEVENT_RDHUP 0x4000
++#elif (defined(__linux__) && (defined(__sparc__) || defined(__sparc)))
++#define FDEVENT_RDHUP 0x2800 /*(0x2000 EPOLLRDHUP | 0x0800 POLLRDHUP)*/
+ #else
+ #define FDEVENT_RDHUP 0x2000
+ #endif
+diff --git a/src/fdevent_impl.c b/src/fdevent_impl.c
+index 8bfc1cc68..c84c8df57 100644
+--- a/src/fdevent_impl.c
++++ b/src/fdevent_impl.c
+@@ -338,6 +338,11 @@ fdevent_linux_sysepoll_event_set (fdevents *ev, fdnode *fdn, int events)
+ struct epoll_event ep;
+ #ifndef EPOLLRDHUP
+ events &= ~FDEVENT_RDHUP;
++ #elif (defined(__linux__) && (defined(__sparc__) || defined(__sparc)))
++ if (events & FDEVENT_RDHUP) {
++ events &= ~FDEVENT_RDHUP;
++ events |= EPOLLRDHUP;
++ }
+ #endif
+ ep.events = events | EPOLLERR | EPOLLHUP;
+ ep.data.ptr = fdn;
+@@ -376,7 +381,11 @@ fdevent_linux_sysepoll_init (fdevents *ev)
+ ck_static_assert(EPOLLERR == FDEVENT_ERR);
+ ck_static_assert(EPOLLHUP == FDEVENT_HUP);
+ #ifdef EPOLLRDHUP
++ #if (defined(__linux__) && (defined(__sparc__) || defined(__sparc)))
++ ck_static_assert(EPOLLRDHUP & FDEVENT_RDHUP);
++ #else
+ ck_static_assert(EPOLLRDHUP == FDEVENT_RDHUP);
++ #endif
+ #endif
+
+ ev->type = FDEVENT_HANDLER_LINUX_SYSEPOLL;
+@@ -770,6 +779,11 @@ fdevent_poll_event_set (fdevents *ev, fdnode *fdn, int events)
+
+ #ifndef POLLRDHUP
+ events &= ~FDEVENT_RDHUP;
++ #elif (defined(__linux__) && (defined(__sparc__) || defined(__sparc)))
++ if (events & FDEVENT_RDHUP) {
++ events &= ~FDEVENT_RDHUP;
++ events |= POLLRDHUP;
++ }
+ #endif
+
+ if (k >= 0) {
+@@ -854,7 +868,11 @@ fdevent_poll_init (fdevents *ev)
+ ck_static_assert(POLLHUP == FDEVENT_HUP);
+ ck_static_assert(POLLNVAL == FDEVENT_NVAL);
+ #ifdef POLLRDHUP
++ #if (defined(__linux__) && (defined(__sparc__) || defined(__sparc)))
++ ck_static_assert(POLLRDHUP & FDEVENT_RDHUP);
++ #else
+ ck_static_assert(POLLRDHUP == FDEVENT_RDHUP);
++ #endif
+ #endif
+
+ ev->type = FDEVENT_HANDLER_POLL;
diff --git a/www-servers/lighttpd/lighttpd-1.4.76-r1.ebuild b/www-servers/lighttpd/lighttpd-1.4.76-r1.ebuild
index 95a95e50e4a8..c61fbf73771c 100644
--- a/www-servers/lighttpd/lighttpd-1.4.76-r1.ebuild
+++ b/www-servers/lighttpd/lighttpd-1.4.76-r1.ebuild
@@ -75,6 +75,10 @@ BDEPEND="
verify-sig? ( sec-keys/openpgp-keys-lighttpd )
"
+PATCHES=(
+ "${FILESDIR}"/${P}-sparc.patch
+)
+
# update certain parts of lighttpd.conf based on conditionals
update_config() {
local config="${ED}/etc/lighttpd/lighttpd.conf"
diff --git a/www-servers/lighttpd/lighttpd-1.4.76.ebuild b/www-servers/lighttpd/lighttpd-1.4.76.ebuild
index 48fd28333e6b..f34148cf6d04 100644
--- a/www-servers/lighttpd/lighttpd-1.4.76.ebuild
+++ b/www-servers/lighttpd/lighttpd-1.4.76.ebuild
@@ -69,6 +69,10 @@ BDEPEND="
verify-sig? ( sec-keys/openpgp-keys-lighttpd )
"
+PATCHES=(
+ "${FILESDIR}"/${P}-sparc.patch
+)
+
# update certain parts of lighttpd.conf based on conditionals
update_config() {
local config="${ED}/etc/lighttpd/lighttpd.conf"