summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-05-06 15:04:27 +0100
committerSam James <sam@gentoo.org>2024-05-06 15:04:44 +0100
commit3fd7c14fa60fed75db7868fb3dbd57e63cd5cda4 (patch)
treee3c57bb4b53d33e52a0af6f123a7ec7177b5018b /www-servers/lighttpd
parentwww-servers/lighttpd: drop 1.4.74 (diff)
downloadgentoo-3fd7c14fa60fed75db7868fb3dbd57e63cd5cda4.tar.gz
gentoo-3fd7c14fa60fed75db7868fb3dbd57e63cd5cda4.tar.bz2
gentoo-3fd7c14fa60fed75db7868fb3dbd57e63cd5cda4.zip
www-servers/lighttpd: fix build on sparc
Closes: https://bugs.gentoo.org/931305 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'www-servers/lighttpd')
-rw-r--r--www-servers/lighttpd/files/lighttpd-1.4.75-sparc.patch74
-rw-r--r--www-servers/lighttpd/lighttpd-1.4.75.ebuild4
2 files changed, 78 insertions, 0 deletions
diff --git a/www-servers/lighttpd/files/lighttpd-1.4.75-sparc.patch b/www-servers/lighttpd/files/lighttpd-1.4.75-sparc.patch
new file mode 100644
index 000000000000..d7bd72973b94
--- /dev/null
+++ b/www-servers/lighttpd/files/lighttpd-1.4.75-sparc.patch
@@ -0,0 +1,74 @@
+https://bugs.gentoo.org/931305
+https://github.com/lighttpd/lighttpd1.4/commit/524614455554163ec78b27b89ff52bbf7fe96958
+
+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
+--- 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
+--- 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.75.ebuild b/www-servers/lighttpd/lighttpd-1.4.75.ebuild
index 4def4402a70a..dc161bf17a69 100644
--- a/www-servers/lighttpd/lighttpd-1.4.75.ebuild
+++ b/www-servers/lighttpd/lighttpd-1.4.75.ebuild
@@ -69,6 +69,10 @@ BDEPEND="
verify-sig? ( sec-keys/openpgp-keys-lighttpd )
"
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.4.75-sparc.patch
+)
+
# update certain parts of lighttpd.conf based on conditionals
update_config() {
local config="${ED}/etc/lighttpd/lighttpd.conf"