fix www/ruby-passenger build with libc++ 10.0, from upstream

make passenger compile on FreeBSD 13
d0d660bbdb
This commit is contained in:
naddy 2021-01-09 23:00:29 +00:00
parent 4f8c0c9d1e
commit 384558c856
3 changed files with 109 additions and 0 deletions

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-src_agent_Core_ApplicationPool_Group_ProcessListManagement_cpp,v 1.1 2021/01/09 23:00:29 naddy Exp $
Fix build with libc++ 10.0.
https://github.com/phusion/passenger/commit/d0d660bbdbb51079ad60188882596810273b1616
Index: src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp
--- src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp.orig
+++ src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp
@@ -305,7 +305,7 @@ Group::detachedProcessesCheckerMain(GroupPtr self) {
while (true) {
assert(detachedProcessesCheckerActive);
- if (getLifeStatus() == SHUT_DOWN || this_thread::interruption_requested()) {
+ if (getLifeStatus() == SHUT_DOWN || boost::this_thread::interruption_requested()) {
UPDATE_TRACE_POINT();
P_DEBUG("Stopping detached processes checker");
detachedProcessesCheckerActive = false;

View File

@ -0,0 +1,17 @@
$OpenBSD: patch-src_agent_Core_ApplicationPool_Pool_GarbageCollection_cpp,v 1.1 2021/01/09 23:00:29 naddy Exp $
Fix build with libc++ 10.0.
https://github.com/phusion/passenger/commit/d0d660bbdbb51079ad60188882596810273b1616
Index: src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp
--- src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp.orig
+++ src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp
@@ -55,7 +55,7 @@ Pool::garbageCollect(PoolPtr self) {
self->garbageCollectionCond.timed_wait(lock,
posix_time::seconds(5));
}
- while (!this_thread::interruption_requested()) {
+ while (!boost::this_thread::interruption_requested()) {
try {
UPDATE_TRACE_POINT();
unsigned long long sleepTime = self->realGarbageCollect();

View File

@ -0,0 +1,75 @@
$OpenBSD: patch-src_cxx_supportlib_oxt_system_calls_cpp,v 1.1 2021/01/09 23:00:29 naddy Exp $
Fix build with libc++ 10.0.
https://github.com/phusion/passenger/commit/d0d660bbdbb51079ad60188882596810273b1616
Index: src/cxx_supportlib/oxt/system_calls.cpp
--- src/cxx_supportlib/oxt/system_calls.cpp.orig
+++ src/cxx_supportlib/oxt/system_calls.cpp
@@ -132,15 +132,15 @@ shouldSimulateFailure() {
_my_errno = errno; \
} while ((error_expression) \
&& _my_errno == EINTR \
- && (!this_thread::syscalls_interruptable() \
- || !(_intr_requested = this_thread::interruption_requested())) \
+ && (!boost::this_thread::syscalls_interruptable() \
+ || !(_intr_requested = boost::this_thread::interruption_requested())) \
); \
if (OXT_LIKELY(ctx != NULL)) { \
ctx->syscall_interruption_lock.lock(); \
} \
if ((error_expression) \
&& _my_errno == EINTR \
- && this_thread::syscalls_interruptable() \
+ && boost::this_thread::syscalls_interruptable() \
&& _intr_requested) { \
throw thread_interrupted(); \
} \
@@ -284,8 +284,8 @@ syscalls::close(int fd) {
}
if (ret == -1
&& errno == EINTR
- && this_thread::syscalls_interruptable()
- && this_thread::interruption_requested()) {
+ && boost::this_thread::syscalls_interruptable()
+ && boost::this_thread::interruption_requested()) {
throw thread_interrupted();
} else {
return ret;
@@ -662,8 +662,8 @@ syscalls::nanosleep(const struct timespec *req, struct
}
} while (ret == -1
&& e == EINTR
- && (!this_thread::syscalls_interruptable()
- || !(intr_requested = this_thread::interruption_requested()))
+ && (!boost::this_thread::syscalls_interruptable()
+ || !(intr_requested = boost::this_thread::interruption_requested()))
);
if (OXT_UNLIKELY(ctx != NULL)) {
@@ -672,7 +672,7 @@ syscalls::nanosleep(const struct timespec *req, struct
if (ret == -1
&& e == EINTR
- && this_thread::syscalls_interruptable()
+ && boost::this_thread::syscalls_interruptable()
&& intr_requested) {
throw thread_interrupted();
}
@@ -748,14 +748,14 @@ syscalls::waitpid(pid_t pid, int *status, int options)
* http://stackoverflow.com/questions/20410943/segmentation-fault-when-accessing-statically-initialized-thread-variable?noredirect=1#comment30483943_20410943
* https://bugzilla.redhat.com/show_bug.cgi?id=731228
*/
- __thread int this_thread::_syscalls_interruptable = 1;
+ __thread int boost::this_thread::_syscalls_interruptable = 1;
bool
boost::this_thread::syscalls_interruptable() {
return _syscalls_interruptable;
}
#else
- boost::thread_specific_ptr<bool> this_thread::_syscalls_interruptable;
+ boost::thread_specific_ptr<bool> boost::this_thread::_syscalls_interruptable;
bool
boost::this_thread::syscalls_interruptable() {