[comp.windows.x] X11R4 and XD88/10 with Utek3.2e, they bite??

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"