Commit 655173ff authored by Mihai Moldovan's avatar Mihai Moldovan Committed by Mike Gabriel

Add patch: 051_nxcomp_macos105-fdisset.full+lite.patch, work around issue in Mac OS X 10.5 SDK.

parent be86627a
...@@ -5,6 +5,10 @@ nx-libs (2:3.5.0.12-0) UNRELEASED; urgency=low ...@@ -5,6 +5,10 @@ nx-libs (2:3.5.0.12-0) UNRELEASED; urgency=low
packaging. Test for Makefiles in subfolders before calling them. packaging. Test for Makefiles in subfolders before calling them.
Fixes build failure during ,,make distclean'' calls. Fixes build failure during ,,make distclean'' calls.
[ Mihai Moldovan ]
* Add patch: 051_nxcomp_macos105-fdisset.full+lite.patch, work around
issue in Mac OS X 10.5 SDK.
[ Oleksandr Shneyder ] [ Oleksandr Shneyder ]
* Create patch: 203_nxagent_disable-rootless-exit.full.patch. * Create patch: 203_nxagent_disable-rootless-exit.full.patch.
Add command line argument "-norootlessexit". Add command line argument "-norootlessexit".
......
Description: workaround for Mac OS X 10.5
The Mac OS X 10.5 SDK requires the second argument of FD_ISSET to be
writeable, although it does only access the data. Given that we have a
const pointer for a const struct, copy and pass that.
.
Note that this is merely a workaround for OS X 10.5, as 10.6 and later
define the second argument of FD_ISSET as const struct const *foo, too.
.
It is safe, as data is accessed read-only by FD_ISSET, even on 10.5.
Forward: pending
Author: Mihai Moldovan <ionic@ionic.de>
---
nxcomp/Agent.h | 28 ++++++++++++++++++++--------
1 files changed, 20 insertions(+), 8 deletions(-)
--- a/nxcomp/Agent.h
+++ b/nxcomp/Agent.h
@@ -149,30 +149,38 @@
int remoteCanRead(const fd_set * const readSet)
{
+ // OS X 10.5 requires the second argument to be non-const, so copy readSet.
+ // It's safe though, as FD_ISSET does not operate on it.
+ fd_set readWorkSet = *readSet;
+
#if defined(TEST) || defined(INFO)
*logofs << "Agent: remoteCanRead() is " <<
- (FD_ISSET(remoteFd_, readSet) && transport_ -> dequeuable() != 0)
- << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, readSet)
+ (FD_ISSET(remoteFd_, readWorkSet) && transport_ -> dequeuable() != 0)
+ << " with FD_ISSET() " << (int) FD_ISSET(remoteFd_, readWorkSet)
<< " and dequeuable " << transport_ -> dequeuable()
<< ".\n" << logofs_flush;
#endif
- return (FD_ISSET(remoteFd_, readSet) &&
+ return (FD_ISSET(remoteFd_, readWorkSet) &&
transport_ -> dequeuable() != 0);
}
int remoteCanWrite(const fd_set * const writeSet)
{
+ // OS X 10.5 requires the second argument to be non-const, so copy writeSet.
+ // It's safe though, as FD_ISSET does not operate on it.
+ fd_set writeWorkSet = *writeSet;
+
#if defined(TEST) || defined(INFO)
*logofs << "Agent: remoteCanWrite() is " <<
- (FD_ISSET(remoteFd_, writeSet) && transport_ ->
+ (FD_ISSET(remoteFd_, writeWorkSet) && transport_ ->
queuable() != 0 && canRead_ == 1) << " with FD_ISSET() "
- << (int) FD_ISSET(remoteFd_, writeSet) << " queueable "
+ << (int) FD_ISSET(remoteFd_, writeWorkSet) << " queueable "
<< transport_ -> queuable() << " channel can read "
<< canRead_ << ".\n" << logofs_flush;
#endif
- return (FD_ISSET(remoteFd_, writeSet) &&
+ return (FD_ISSET(remoteFd_, writeWorkSet) &&
transport_ -> queuable() != 0 &&
canRead_ == 1);
}
@@ -203,13 +211,17 @@
int proxyCanRead(const fd_set * const readSet)
{
+ // OS X 10.5 requires the second argument to be non-const, so copy readSet.
+ // It's safe though, as FD_ISSET does not operate on it.
+ fd_set readWorkSet = *readSet;
+
#if defined(TEST) || defined(INFO)
*logofs << "Agent: proxyCanRead() is "
- << ((int) FD_ISSET(proxy -> getFd(), readSet)
+ << ((int) FD_ISSET(proxy -> getFd(), &readWorkSet)
<< ".\n" << logofs_flush;
#endif
- return (FD_ISSET(proxy -> getFd(), readSet));
+ return (FD_ISSET(proxy -> getFd(), &readWorkSet));
}
int enqueueData(const char *data, const int size) const
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
030_nx-X11_configure-args.full.patch 030_nx-X11_configure-args.full.patch
031_nx-X11_parallel-make.full.patch 031_nx-X11_parallel-make.full.patch
032_no-x11r6.full.patch 032_no-x11r6.full.patch
051_nxcomp_macos105-fdisset.full+lite.patch
101_nxagent_set-rgb-path.full.patch 101_nxagent_set-rgb-path.full.patch
102_xserver-xext_set-securitypolicy-path.full.patch 102_xserver-xext_set-securitypolicy-path.full.patch
103_nxagent_set-X0-config-path.full.patch 103_nxagent_set-X0-config-path.full.patch
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment