Convert between versions of UNIX

Gary Oberbrunner garyo at Think.COM
Sat Sep 23 05:08:21 AEST 1989


> I am writing a paper about the problems of converting (porting) software
> between various versions of UNIX... what are the hardest feature to port;
> what features are so subtle that bugs from them hide?

Hard things to port:
select - Berkeley vs. ATT are completely different, but not so hard to
   convert.  Easier to go SysV->4.2 than the other way.
signals - sigset, sigvec, signal, etc. etc. etc.  I ported Berkeley tcsh to
   a SysV-derived system and I never quite got all the signal stuff right.
   It still does weird things every once in a while.  The feature sets just
   don't map onto one another.
tty drivers - a true nightmare.  TCSETA vs. TIOCSETA, etc.  Look at Gnu
   Emacs to see how hairy this gets.  The feature sets are too different.
32-bit ints->16 - malloc, read, etc. all fail for large arguments.
time stuff - all different.  Just have to keep beating on it 'til it works.

Subtle things:
printf return value (yes, some code actually depends on it.)
see above for more examples - signal hackery is always very subtle
   and context-dependent.
--
					As always,

					Gary O

-----------------------------------------------------------------------------
Remember,		      Truth is not beauty;	    Gary  Oberbrunner
Information is not knowledge; Beauty is not love;  {ames,harvard}!think!garyo
Knowledge is not wisdom;      Love is not music;	      garyo at think.com
Wisdom is not truth;	      Music is the best. - FZ	  (617) 876-1111 x265



More information about the Comp.unix.wizards mailing list