[rescue] SGI Indigo2 & IRIX 6.5
Adam Kropelin
akropel1 at rochester.rr.com
Mon Dec 1 18:05:23 CST 2008
Jonathan C. Patschke wrote:
> If a given piece of software is so shoddy that it can only run on one
> or two implementations of POSIX, barring some low-level dependency (a
> device driver), it's broken software. If it can run on Linux and it
> can run on BSD, there are very few technical reason why it can't run
> elsewhere.
True, but it does require a certain degree of determination and willingness
to conform to the mindset of multiple platforms all at once. (And having a
good supply of new curse words handy at all times doesn't hurt). So it's a
wee bit of an oversimplification to paint single platform apps with the
"shoddy" brush.
I maintain a small open source project which I inherited, and it supports a
wide range of platforms, where "wide" means all the BSDs, several Linux
flavors, OS X, IRIX, AIX, Solaris, HP-UX, and yes, even Win32. All of these
are supported going back several releases, roughly 10 years, give or take.
Basic requirements for a platform to be supported are vaguely working
pthreads (see BSD from a few years ago for a nice example of "vaguely") and
USB if you want to use it...which almost everyone does these days.
It is, to say the least, a challenge. The amount of autoconf bullcrap
required to sort out what library $THEY decided to hide nanosleep in on
your platform, for example. Or if you really want to get me mad, remind me
about the time someone contributed a seemingly simple patch that required
gethostbyname(). Time to integrate and test patch on two sane (I'll not
feed the flamewar by saying which) platforms: 10 minutes. Time required to
sort out autoconf hackery to deal with every other *freaking* platform that
made up their own version of the function with a different number of
arguments: Long enough to make Adam something-something.
Besides the autoconfiggery to get the darn thing to *build* you also have
lots of other time sinks such as... Build system: What version of make does
your platform have? Is it GNU make, BSD make, or some balogna make-a-like?
Compiler: I dare you to get a -Wall clean build across a decade of
compilers and platforms on a non-trivial project. Packaging: What do binary
packages look like on your platform and how do you make them? Does it
require crazy GUI-centric tools that you break in every release? (I'm
looking at you, OS X.) System integration: How is daemon management
handled? How should a daemon interact with your platform to...say, initiate
and hook a system shutdown? Every platform does it differently and feels
free to change it in every release. Bugs: Every platform has them, even
$BESTOSEVER.
So I agree there's no technical reason an intelligently-written software
package (and I'm not saying mine always meets that qualification) cannot
run on any platform with the basic infrastructure it requires. However,
there is an ach-eee-double-hockey-sticks lot of *practical* reasons someone
might choose not to. Keeping their sanity, for one.
But yeah, it's totally doable and it's not like I would have a great social
life anyway...
--Adam
More information about the rescue
mailing list