From 6cb4e004270f019a44335883470bb60763ce534b Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 29 Aug 2024 10:10:19 +0200 Subject: [PATCH] package/lighttpd: fix sparc/sparc64 compilation From Upstream git, two patches to fix sparc/sparc64 specific compile issues. Fixes: http://autobuild.buildroot.org/results/c35/c35f9b78b8f114bb795ed162585d707331954b4b Signed-off-by: Waldemar Brodkorb Signed-off-by: Thomas Petazzoni (cherry picked from commit 06b1f1fbd36b063ef5c2322817ee78b43dd1c7b3) Signed-off-by: Peter Korsgaard --- ...ial-value-for-Linux-POLLRDHUP-on-SPA.patch | 34 ++++++++ ...ue-for-Linux-POLLRDHUP-on-SPARC-fixe.patch | 85 +++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 package/lighttpd/0002-Revert-core-special-value-for-Linux-POLLRDHUP-on-SPA.patch create mode 100644 package/lighttpd/0003-core-special-value-for-Linux-POLLRDHUP-on-SPARC-fixe.patch diff --git a/package/lighttpd/0002-Revert-core-special-value-for-Linux-POLLRDHUP-on-SPA.patch b/package/lighttpd/0002-Revert-core-special-value-for-Linux-POLLRDHUP-on-SPA.patch new file mode 100644 index 0000000000..eebfa3a113 --- /dev/null +++ b/package/lighttpd/0002-Revert-core-special-value-for-Linux-POLLRDHUP-on-SPA.patch @@ -0,0 +1,34 @@ +From 88ff3763dae65371eab9f8a22ac1c95c96fe4490 Mon Sep 17 00:00:00 2001 +From: Glenn Strauss +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 + +Signed-off-by: Waldemar Brodkorb +Upstream: https://redmine.lighttpd.net/projects/lighttpd/repository/14/revisions/88ff3763dae65371eab9f8a22ac1c95c96fe4490 +--- + src/fdevent.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/fdevent.h b/src/fdevent.h +index e9c380b0..1b0a062f 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 +-- +2.30.2 + diff --git a/package/lighttpd/0003-core-special-value-for-Linux-POLLRDHUP-on-SPARC-fixe.patch b/package/lighttpd/0003-core-special-value-for-Linux-POLLRDHUP-on-SPARC-fixe.patch new file mode 100644 index 0000000000..f3996d185e --- /dev/null +++ b/package/lighttpd/0003-core-special-value-for-Linux-POLLRDHUP-on-SPARC-fixe.patch @@ -0,0 +1,85 @@ +From 524614455554163ec78b27b89ff52bbf7fe96958 Mon Sep 17 00:00:00 2001 +From: Glenn Strauss +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 + +Signed-off-by: Waldemar Brodkorb +Upstream: https://redmine.lighttpd.net/projects/lighttpd/repository/14/revisions/524614455554163ec78b27b89ff52bbf7fe96958 +--- + 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 1b0a062f..556a1445 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 8bfc1cc6..c84c8df5 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; +-- +2.30.2 +