Re: shared library strangeness? - Mailing list pgsql-hackers

From Bill Studenmund
Subject Re: shared library strangeness?
Date
Msg-id Pine.NEB.4.21.0107020916240.370-100000@candlekeep.home-net.internetconnect.net
Whole thread Raw
In response to Re: shared library strangeness?  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: shared library strangeness?  (ncm@zembu.com (Nathan Myers))
List pgsql-hackers
On Tue, 22 May 2001, Bruce Momjian wrote:

> I am always confused when to bump the minor and when the major.  I also
> was not sure how significant the change would be for apps.  We added
> const, and I changed the return type of one function from short to int. 
> Seems like ConnectionBad was also changed.

Sorry for the delay.

You need to bump the minor whenever you add to the library. You need to
bump the major whenever you delete from the library or change(*) the
interface to a function. i.e. if a program links against the library, as
long as the routine names it linked against behave as it expected at
compile time, you don't need to bump the major.

(*) NetBSD (and I think other OSs too) use a gcc-ism, RENAME, to be able
to change the interface seen by new programs w/o changing the minor
number. What you do is prototype the function as you want it now, and have
a __RENAME(new_name) at the end of the prototype. When you build the
library, you have a routine having the old footprint and old name, and a
new routine with the new footprint and named new_name. Old programs look
for the old name, and get what they expect. New programs look for the new
name, and also get what they expect.

I'm not sure if Postgres needs to go to that much trouble.

Take care,

Bill



pgsql-hackers by date:

Previous
From: Thomas Swan
Date:
Subject: Re: New data type: uniqueidentifier
Next
From: Phillip F Jansen
Date:
Subject: tab