On Tue, 12 Jan 1999 [EMAIL PROTECTED] wrote:
> Edward> Using this will obliterate your upwards compatibility with Solaris 2.6 and
> Edward> higher. __vsnprintf() isn't defined in 2.6. Which means your binary
> Edward> compatibility is shot needlessly.
> 
> Yup. And would you rather not have it at all? vsnprintf() is not part of the
> ABI, so compatability isn't guaranteed anyway.

Reread what I suggested. :-) Some platforms don't have vsnprintf(); how
will you deal with portability to them? The simplest answer is to provide
your own copy of *snprintf() to link in where autoconf doesn't detect it;
this will ensure upwards binary compatibility.

The INN documentation originally suggested -Dvsnprintf=__vsnprintf when
they were still using that function. This bit an enormous number of
people who didn't know what that really meant to them when they casually
upgraded their news system to 2.6, and suddenly their news server that had
been running for months stopped working...;-) They rectified this
eventually by providing a replacement that was linked in if you didn't
have it (borrowed from BSD's C library, I believe; lsh could probably
borrow that suite of functions from glibc).

(The INN team has since dropped the use of vsnprintf, btw, and found
workarounds. Not enough platforms supported it for their liking.)

> Solaris 2.5.1 is old. It needs disgusting hacks to make a lot of stuff
> work. If you're running it, you should know how to deal.

It might be old, but there are still a -lot- of people running it. Not
everyone is a member of the upgrade-of-the-month club; a lot of people
find a stable platform that works (we've had months of uptime on a 2.5.1
machine under constant heavy load), and stick with it (I know people
running Linux 1.2.x with libc4 in production today). And people don't
generally savor having to recompile utilities after an OS upgrade.

And as far as disgusting hacks go, I've yet to find a package that won't
cleanly compile under it, as long as it avoids a few non-standard
functions (or provides replacements).

Btw, I hope you didn't take my original post as argumentative; I've just
had to deal with the problems that Sun's choice of exposing experimental
functions caused. ;-) (Why couldn't they simply create libexperimental.so,
which you could carry forward with you if you really needed it? *sigh*)

-- 
Edward S. Marshall <[EMAIL PROTECTED]>       [ What goes up, must come down. ]
http://www.logic.net/~emarshal/               [ Ask any system administrator. ]

    Linux labyrinth 2.2.0-pre4 #1 Sun Jan 3 13:28:42 CST 1999 i586 unknown
       9:15am up 8 days, 17:56, 0 users, load average: 0.00, 0.00, 0.00

Reply via email to