diff options
author | Sam James <sam@gentoo.org> | 2024-05-06 15:04:27 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-05-06 15:04:44 +0100 |
commit | 3fd7c14fa60fed75db7868fb3dbd57e63cd5cda4 (patch) | |
tree | e3c57bb4b53d33e52a0af6f123a7ec7177b5018b /www-servers | |
parent | www-servers/lighttpd: drop 1.4.74 (diff) | |
download | gentoo-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')
-rw-r--r-- | www-servers/lighttpd/files/lighttpd-1.4.75-sparc.patch | 74 | ||||
-rw-r--r-- | www-servers/lighttpd/lighttpd-1.4.75.ebuild | 4 |
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" |