[comp.unix.questions] Porting TCSH to RS/6000 w/ AIX 3

stjohn@penelope.Oswego.EDU (Dave St. John) (10/09/90)

I am trying to get tcsh to run under AIX version 3. I am compiling with the
BSD compatible libraries and defining things BSDish but when I run the shell
input is all messed up. I type in the command ls and have to press return 
several times to get the command to appear and execute.

Also commands such as more don't behave properly. When such a command is used
it is sent signal 22 (TTOU) and is stopped. This occurs with several other
output commands but some work occasionaly such as cat.

I tried compiling with System V flags set and a combination of the BSD and
System V flags but nothing produces a good result. Under System V the output
from commands such as ls is all messed up with linefeeds not interpreted 
properly. Basically everything is messed up.

I would appreciate any information about AIX specifics that need to be taken
care of or if anyone has done this already some pointers in the right direction.

Thanks in advance
Dave St. John
stjohn@oswego.oswego.edu

steve@qe2.awdpa.ibm.com (Steve DeJarnett) (10/09/90)

In article <1990Oct8.185748.15133@oswego.Oswego.EDU> stjohn@penelope.Oswego.EDU (Dave St. John) writes:
>I am trying to get tcsh to run under AIX version 3. I am compiling with the
>BSD compatible libraries and defining things BSDish but when I run the shell
>input is all messed up. I type in the command ls and have to press return 
>several times to get the command to appear and execute.

	Probably something like 4 times per input line, right??  Actually, I 
think it's any 4 characters, but return is always the most common candidate.

>Also commands such as more don't behave properly. When such a command is used
>it is sent signal 22 (TTOU) and is stopped. This occurs with several other
>output commands but some work occasionaly such as cat.

	Not quite sure why this occurs, but, as I recall, we're seeing something
very similar here (I suspect it's the same thing, actually).

>I would appreciate any information about AIX specifics that need to be taken
>care of or if anyone has done this already some pointers in the right direction.

	There's a new copy on tesla.ee.cornell.edu that you might want to look
at.  There's a binary for the RISC System/6000 (RS/6000) there that you may or
may not want to pick up (depending on how paranoid you like to be about
picking up binaries from anonymous ftp sites).  There's also source with the
relevant AIXv3 defines in it.  The comment relevant to the above-mentioned 
problem is:

	/*
	 * If someone could explain this to me...
	 * On the RS6000, CBREAK behaves like ~ICANON with VMIN=4 and VTIME=0!
	 * So for this module, we use the SYSV tty driver stuff
	 */

The version there is 5.19, which, apparently, is not a Paul Placeway version.
It's an incremental release (non-official) done by some people at Cornell.  It
should solve most of your problems, though.

>stjohn@oswego.oswego.edu

	Hope that helped.

	Steve

Steve DeJarnett			Internet: steve@ibminet.awdpa.ibm.com
IBM AWD Palo Alto		UUCP:	  uunet!ibminet.awdpa.ibm.com!steve
(415) 855-3510			IBM VNET: dejarnet at ausvmq
These opinions are my own.  I doubt IBM wants them.......

wlm@arnor.uucp (10/09/90)

There is a version of tcsh on gatekeeper.dec.com which works correctly on
machines which have posix-ish features. It is very easy to make this work
on an RS6K; the only gotcha is that chars must be chars and not ints -
this is re a feature of this version of tcsh (5.19).

Bill Moran

gwyn@smoke.BRL.MIL (Doug Gwyn) (10/11/90)

In article <1990Oct9.052828.11184@panews> steve@ibmsupt.UUCP (Steve DeJarnett) writes:
>	Probably something like 4 times per input line, right??  Actually, I 
>think it's any 4 characters, but return is always the most common candidate.

4 is a significant "magic number"; it's the value of the default EOT
character.  System V multiplexes the EOT character in the termio structure
with the non-canonicalizing VMIN field.  If whoever ported the software
failed to take this into account, they probably left the EOF character
in the termio field when switching to non-canonicalizing mode.  The bug
should be easily locatable in the source code..