bartm@cv.ruu.nl (Bart Muyzer) (05/23/91)
Hi,
I'm currently porting MIT's X11R4 Windowing system to the TekTronix XD88/10
running UteK 3.2e. Everything compiles ok (after a few days hacking) but I
can't get it to work.
The connection type I use is '-DTCPCONN -DUNIXCONN', and I DON'T try to build
the X server (yet ;-) ). This means that the X server as distributed by
Tektronix is used in cases 1 and 2 below.
What I try to do is starting an xterm. I put some debugging code in libX.a and
get this results:
1. xterm -display unix:0 [local X server, don't use network]
XOpenDisplay: XWriteV: rval = 12, errno = 2
... [program goes on]
Calling _XReadPad
XReadPad: data=4366B8, size = 5872
XReadV: rval = -4844, errno = 0
ReadvFromServer: bytes_read = -4844 (ERROR)
After this, the program terminates.
Very strange is that XreadV returns the result of an 'recvmsg' call which
according to the manual can only be either -1, 0 or positive !???
2. xterm -display bunny:0 [local X server, use network]
Calling _XReadPad
XReadPad: data=4366B8, size = 5872
XReadV: rval = -1, errno = 45
Now errno 45 means 'deadlock condition'. The program hangs. At least the
returnvalue of XReadV now makes sense :-| .
3. xterm -display mind:0 [remote X server]
Calling _XReadPad
XReadPad: data=4366B8, size = 5872
XReadV: rval = -1, errno = 45
Exacly the same as above.
I turned on XReadV/XWriteV emulation as coded in lib/X/XlibInt.c for the CRAY
because Utek3.2e doesn't have the readv() and writev()-calls. I don't expect
the other provided emulation to work since this is for a STREAMSCONN.
A few weeks ago I posted this question also. I got two reactions:
A. Andrew Klossner (andrew%frip.wv.tek.com@relay.cs.net) suggested to
"check that all code agrees on de #definition of the ioctl-codes. We saw
just this symptom in an environment where two different machines had
different values for FIONREAD"
I checked the FIONREAD value on the XD88/10 and on an HP 9000/400t running
HP-UX 7.0 and they agree. And IMHO, this wouldn't matter in cases 1 and
2...
B. Ron Holt (ron@Eyring.COM) said to check lib/X/XlibInt.c because "88k
systems will return EAGAIN instead of EWOULDBLOCK on reads or writes on
sockets if the data cannot be immediately transferred".
I put a "#define EWOULDBLOCK EAGAIN" in lib/X/XlibInt.c but this doesn't
change things a single bit :-(
To be short: I'm stuck. I've used every trick I can possibly think of. So I
hope someone out there can help me out with this one...
Any help will be greatly appreciated. Please reply by email or post in
com.sys.m88k or comp.windows.x. Many, many thanks in advance,
>] Bart [<
(bartm@cv.ruu.nl)
--
Bart Muyzer(SysAdm), 3D Computer Vision, University Hospital Utrecht
Heidelberglaan 100, Room E 02.222, 3584 CX Utrecht, The Netherlands.
tel: +31-30-506711 (w), +31-3402-52157 (h) | "You never get a second chance
fax: +31-30-513399, e-mail: bartm@cv.ruu.nl | to make a first impression"