Path: utzoo!attcan!uunet!bloom-beacon!think!garyo From: garyo@Think.COM (Gary Oberbrunner) Newsgroups: comp.unix.wizards Subject: Re: Convert between versions of UNIX Message-ID: Date: 22 Sep 89 19:08:21 GMT References: <201@fjcp60.GOV> Sender: news@Think.COM Followup-To: comp.unix.wizards Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 30 In-reply-to: brinkema@fjcnet.GOV's message of 22 Sep 89 03:35:07 GMT > 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@think.com Wisdom is not truth; Music is the best. - FZ (617) 876-1111 x265