From: udo@umunk.GUN.de (Udo Munk)
Newsgroups: comp.os.coherent
Distribution: world
Subject: COHERENT problems FAQ
Keywords: problems, missing functions, COHERENT
Summary: 
X-Newsreader: TIN [version 1.1 PL8]
Organization: Udo Munk's private BBS
Date: Mon, 11 Jan 93 03:18:51 GMT


          C O H E R E N T  4 . 0  P R O B L E M S  F A Q

                       R E L E A S E  1 . 0


This FAQ describes known problems with COHERENT 4.x and gives hints for
workarounds. I'll try to hold this list up to date and post it all two
weeks and after major changes. Also a copy goes to the development staff
at MWC. If you know about other problems please send me a mail, so that
I can add them to this FAQ.

1. System calls:
================

1.1 Missing system calls:
-------------------------

nice:	It's not documented but it's available. However, it's a dummy because
	COHERENT's scheduler doesn't make use of the nice value yet.

ulimit:	Will be available with the next update.

The following system calls aren't defined in iBCS2, so they are technically
*not* missing from COHERENT. However, this system calls are used by various
software, so it would be nice to have them.

fsync
setreuid
setregid

1.2 System calls with bugs:
---------------------------
There are no know bugs or incompatiblies from iBCS2 yet.


2. Library functions:
=====================

2.1 Missing library functions:
------------------------------

vprintf family:	Will be available with the next update. In the meantime
		you can get it from raven.alska.edu and my system.

alarm2, tick:	Both functions are not part of System V or iBCS2, so they
		are accessible from COHERENT 286 binaries only.
		A value equivalent to that of tick() is returned by times(),
		but is omitted from the COHERENT 386 lexicon article of
		times().

tzset:		This function is available, but as settz().

getutent, getutid, getutline, pututline, setutent, endutent, utmpname:
		The "getut" family of functions is not defined in iBCS2,
		so technically they are not missed from COHERENT.
		Because other System V 386 ports include them, they are
		added to MWC's to-do list.

2.2 Library functions with bugs:
--------------------------------

mktemp:		Uses not only letters (A-Z, a-z) and digits (0-9) to
		create temporary filenames, it also uses the special
		characters $%&/... This results in a lot of problems if
		such a filename is used in a system() call.
		Will be fixed by MWC ASAP.

access:		access(filename, AEXEC) executed under user root returns
		execute permission also for files, where the x-bit are off.

getpwent:	Does not fill pw_comment, but filles pw_gecos. Also this
		"pwent" family of functions is not defined in iBCS2.

execvp:		Can't execute shell scripts. This is already fixed by MWC.


3.0 Header files:
=================

fcntl.h:	Under COHERENT 286 fcntl.h has been in /usr/include/sys.
		Under COHERENT 386 now it is in /usr/include. Most System V's
		have the real contents in /usr/include/sys/fcntl.h while
		/usr/include/fcntl.h only inludes one line:
		#include <sys/fcntl.h>
		This should be changed with the next update.

stat.h:		/usr/include/sys/stat.h is missing some permissions and
		defining some not System V compatible. Use the following
		code to make your program portable:
			#ifdef COHERENT
			#define S_IRUSR		S_IREAD
			#define S_IWUSR		S_IWRITE
			#define S_IXUSR		S_IEXEC
			#define S_IFIFO		S_IFPIP
			#define S_IRGRP		00040
			#define S_IWGRP		00020
			#define S_IXGRP		00010
			#define S_IROTH		00004
			#define S_IWOTH		00002
			#define S_IXOTH		00001
			#endif


4.0 Curses:
===========

The curses library from the distribution disks has problems with terminals,
where some arithmetics are used, to position the cursor. This bug is fixed.
Also input/output of 8-bit characters with addstr()/getstr() doesn't work,
which also is fixed. The terminfo descriptions for terminals aren't very
complete on the distribution disk. Better versions are available from
raven.alska.edu. Also the next COHERENT update comes with better tested
terminfo terminal desciptions. For a future version I'm adding color support,
panels and mouse support.
Here a complete and working ansipc.ti for the console:

ap|ansipc|ansi personal computer,
	bw, am, cols#80, lines#24, it#8, xmc#0,
	bel=^G, cr=^M, csr=\E[%i%p1%d;%p2%dr, 
	clear=\E[2O, el=\E[K, ed=\E[O, hpa=\E[%i%p1%d`, cup=\E[%i%p1%d;%p2%dH,
	cud1=\E[B, civis=\E[1v, cub1=\E[D, cnorm=\E[v, cuf1=\E[C, cuu1=\E[A, 
	cvvis=\E[v, dl1=\E[M, blink=\E[5m, bold=\E[1m, rev=\E[7m,
	smso=\E[7m, rmso=\E[m, smul=\E[4m, rmul=\E[m, sgr0=\E[m,
	is1=\E[1;1f\E[m, il1=\E[L, kbs=^H, kdch1=\E[P, kcud1=\E[B,
	khome=\E[H, kich1=\E[@, kll=\E[24H, kcub1=\E[D, knp=\E[U, kpp=\E[V,
	kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rs1=\E>, rc=\E8, vpa=\E[%i%p1%dd,
	kf1=\E[1x, kf2=\E[2x, kf3=\E[3x, kf4=\E[4x, kf5=\E[5x,
	kf6=\E[6x, kf7=\E[7x, kf8=\E[8x, kf9=\E[9x, kf10=\E[0x,
	sc=\E7, ind=\E[S, ri=\E[T,
	acsc=a\260f\370j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263~\3720\333,

The latest version of curses, header files and terminfo programs is available
from my system.


5. Commands:
============

make:		The make from the distribution disks doesn't allow redefinition
		of the default actions. If a makefile includes
		.c.o:
			cc -O -c $*
		this results in a error message "multiple actions on .c.o".
		This problem is fixed, get the updated make from MWCBBS or
		my system.

sed:		The pattern buffer is very small, it aborts with the error
		message "pattern buffer overflow", if a large pattern is
		given. MWC will increase the size of the pattern buffer.

sh:		Some of the configure programs for various packages uses
		\\ for lines to be continued. This doesn't work, remove
		the secound \.

cc:		Option -B and -L doesn't work.


5. Miscellaneous:
=================

Why doesn't input of 8-bit characters work after installation of the DDK?
The tty drivers now are more System V compatible, add "stty -istrip" to
/etc/profile and it will work again.
--
Udo Munk, Oberstr. 21, 4040 Neuss 1, Germany
udo@umunk.GUN.de   ...!{mcshh,smurf,unido}!easix!umunk!udo   CIS: 100021,2515
uucp: +49 2131 278869 V22/32/42bis 8N1 login: uucp pwd: public MYNAME=bbsuser
request file /usr/spool/uucppublic/info for instructions