> > My answers would be "HP, and beat on my developers to write portable > code", "What's the next most common UNIX box in that list?", and "After > a couple of rounds it should be a matter of typing "make"..." That's the right answer, but to the wrong question. Everyone ought to be writing portable code, but POSIX.1 by itself won't do the job because it's woefully incomplete. Using POSIX interfaces will help you pick the portable alternative between index() and strchr(), but what do you do for networking? POSIX.1 defines no network calls, so you do the next best thing and use the de-facto standard, BSD sockets. Presumably Spec-1170 will cover a wider range of applications than POSIX since they threw in everything including the kitchen sink, but it still can't cover every possible application. Audit is one of the missing ones. With every vendor defining their own API for generating C2 audit records, method of controlling which events will be audited, and format of saved data, writing a portable audit reduction tool is more than "writing portable code and typing 'make'". Since auditing is not used at all by most customers, the various vendors may have bugs in their audit implementations ranging from annoying to nearly insurmountable. I'd be inclined to believe that there is a large cost of developing for each new platform that cannot be avoided, even by using the best possible software engineering practices.