Re: PQnotifies() in 7.3 broken?

From: Kevin Brown <kevin(at)sysexperts(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: PQnotifies() in 7.3 broken?
Date: 2002-12-12 11:43:36
Message-ID: 20021212114336.GE20203@filer
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:
> If it is true that the linker only matches the major number, what value
> is there in incrementing the minor number, as we have done in the
> past?

It's main value is in indicating to the system administrator which
version of the library he has. This is particularly useful in the
face of security updates.

A library can have bugfixes (even significant ones) and still be
binary compatible with a previous revision. Situations like that are
what the minor number is useful for. It can make the developer's (or
administrator's) life a little easier, since it means he can have
multiple minor revisions installed on his system and change the major
revision symlink to point to whichever one he wishes to actually use
(given the way the dynamic linker works, the administrator can name
the actual target of the symlink whatever he wishes so it's not
mandatory that the developers do that for him...it just makes his life
easier).

I probably should have gone into a little more detail about how the
linker does its thing: it looks for a literal match for what the
application says it was compiled against. When the application was
linked, if the library it was linked against said it was 'libpg.so.2'
(As far as I know, the compile-time linker retrieves this from the
library's header information, not from its filename), then that's what
gets stored in the application's executable header and is what the
runtime linker looks for. libpg.so.2 may be a symlink to (e.g.)
libpg.so.2.1 or a hard link, or a copy of a library for that matter.
The runtime linker will successfully link the shared library into the
program's memory image in any of those cases -- it only has to find a
shared library whose filename is the same as what's requested *and*
whose header information provides the same name.

--
Kevin Brown kevin(at)sysexperts(dot)com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Teodor Sigaev 2002-12-12 13:22:25 Please, apply patch for 7.3.1 and current CVS
Previous Message Philip Warner 2002-12-12 06:33:45 Re: DB Tuning Notes - Where To?