On 9 Jan 2020, at 10:29, Harald Arnesen
<skogtun(a)gmail.com> wrote:
Den 08.01.2020 23:15, skrev Dave Horsfall:
Similarly, I have a Penguin laptop at home for
porting purposes, otherwise I never use it. The cycle goes something like: get it working
on both FreeBSD and the Mac (fairly easy), try it on the Penguin to see what they've
broken and make the appropriate changes, then back to the Mac and the FreeBSD box again;
repeat as necessary. If worse comes to worst, make the code conditional upon the
architecture (and I hate doing that, because it breaks the logical flow of the code).
In my experience, macOS breaks more things these days.
When I first used “Unix” in the late 80’s, most of the available source code needed some
sort of tweaking to work, unless the author happened to have the same system I was using
(HP/UX, Minix, and a BSD VAX, iirc). A rummage through the GNU’s autoconf docs will
(re)acquaint you with he multitude of small differences that needed to be accounted for to
make most things portable.
Then Sun became the dominant vendor, and most things would work out of the box on SunOS /
Solaris, with different degrees of effort required depending on how different your system
was. I was working for a DEC-sponsored lab at the time, and Ultrix was more in the BSD
camp than Solaris, but there was usually someone had done some BSD-style tweaks that could
be co-opted into mostly working for Ultrix. Then we got the fancy new DEC3000 Alphas, and
to a first approximation, *nothing* worked (although that was mostly 64 bit pointers,
rather than OSF/1).
As Linux has become increasingly popular, things now almost universally work out of the
box on Linux, with some work required to make macOS, *BSD, and the other commercial Unices
work. Often now, there’s no autoconf (at least for newer projects) or it’s poorly
maintained, and I find myself back to the 80s-style patching to get stuff to run on
systems other than Linux.
Whenever one system becomes too popular, the definition of “Unix” drifts in that direction
…
d