[comp.sys.sgi] ksh on 4D

mlj8e@dale.acc.Virginia.EDU (Michael L. Johnson) (07/19/88)

I have been trying to get the Korn shell "ksh" to run on my 4D/70 
(software release 2.2) and I
need help.  If I "make" it for system V then the wild card expansion
in statements like "rm *.o" does not work correctly.  If I make it for BSD
then it thinks that I should have job control.  My local unix guru
tells me that I need to "fix the source code".
 
I am very new at unix and/or silicon graphics and quite frankly I need help.
Does anyone have a working version of ksh and/or the patched source code
for the 4D?  We have what my academic computing center claims to be a
"site license" for ksh so it would actually be legal for me to get it
from almost any source.
 
Thanks for your help.
                                     Michael L. Johnson
                                     mlj8e@mljsg.pharm.Virginia.EDU 
(804)-924-2496                   Michael L. Johnson
mlj8e@virginia.EDU               Pharmacology Dept.
uunet!virginia!mlj8e             Box 448; Univ. of Va.
mlj8e@virginia.BITNET            Charlottesville, Va. 22908

jmb@patton.SGI.COM (Jim Barton) (07/22/88)

In article <1000@virginia.acc.virginia.edu>, mlj8e@dale.acc.Virginia.EDU (Michael L. Johnson) writes:
> I have been trying to get the Korn shell "ksh" to run on my 4D/70 
> (software release 2.2) and I
> need help.  If I "make" it for system V then the wild card expansion
> in statements like "rm *.o" does not work correctly.  If I make it for BSD
> then it thinks that I should have job control.  My local unix guru
> tells me that I need to "fix the source code".
>  
>                                      Michael L. Johnson
>                                      mlj8e@mljsg.pharm.Virginia.EDU 

The big problem is that the older versions of KSH did not deal with the
V.3 directory access routines correctly.  If you take a look at expand.c,
you'll notice it refers to a 'struct dirent', which is Berkeley flavor.
V.3 uses a 'struct direct' which is slightly different.  I fixed it by
modifying to the V.3 scheme and turning on the BSD define locally in the file.
You'll also want to use '-lsun -lbsd' on the link line, so as to
pull in proper yellow pages and NFS support.

Also, turn on the VIRAW define and run in raw all the time.  You'll avoid
lots of problems.  Finally, compile everything with the -signed option,
which treats characters as signed (which is compatabile with most systems).
MIPS does unsigned chars by default because they are much simpler to
generate code for.

-- Jim Barton
Silicon Graphics Computing Systems    "UNIX: Live Free Or Die!"
jmb@sgi.sgi.com, sgi!jmb@decwrl.dec.com, ...{decwrl,sun}!sgi!jmb

  "I used to be disgusted, now I'm just amused."
			- Elvis Costello, 'Red Shoes'
--

gwyn@BRL.ARPA (Doug Gwyn, VLD/VMB) (07/22/88)

SVR3 has struct dirent and 4.3BSD has struct direct, not the other
way around.  The SVR3 struct direct is the raw 16-byte filesystem
entry format (same as 7th Edition UNIX) and should never be used
by portable applications.  IEEE 1003.1 specifies struct dirent.

palmer@ncifcrf.gov (Thomas Palmer) (07/22/88)

In article <17739@sgi.SGI.COM>, jmb@patton.SGI.COM (Jim Barton) writes:
> The big problem is that the older versions of KSH did not deal with the
> V.3 directory access routines correctly.  If you take a look at expand.c,
> you'll notice it refers to a 'struct dirent', which is Berkeley flavor.
> V.3 uses a 'struct direct' which is slightly different.  I fixed it by
> modifying to the V.3 scheme and turning on the BSD define locally in the file.
. . .

> -- Jim Barton
> Silicon Graphics Computing Systems    "UNIX: Live Free Or Die!"
> jmb@sgi.sgi.com, sgi!jmb@decwrl.dec.com, ...{decwrl,sun}!sgi!jmb

Why don't you post your ksh fixes?

  -Tom

 Thomas C. Palmer	NCI Supercomputer Facility
 c/o PRI, Inc.		Phone: (301) 698-5797
 PO Box B, Bldg. 430	Uucp: ...!uunet!ncifcrf.gov!palmer
 Frederick, MD 21701	Arpanet: palmer@ncifcrf.gov