Re: Question and suggestion about application binary compatibility policy

From: "Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com>
To: Michael Meskes <meskes(at)postgresql(dot)org>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Question and suggestion about application binary compatibility policy
Date: 2016-06-01 02:47:57
Message-ID: 0A3221C70F24FB45833433255569204D1F57C9BC@G01JPEXMBYT05
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> From: Michael Meskes [mailto:meskes(at)postgresql(dot)org]
> e.g. a random hit from google:=C2=A0https://www.bottomupcs.com/libra
> ries_and_the_linker.xhtml
>
> There even is a wikipedia page about
> it:=C2=A0https://en.wikipedia.org/wiki/
> Soname

Thank you for good pointers. The former is particularly nice.

> > BTW, although this may be a separate topic, it may be better that we
> > add the major version in the library names like libpq5.dll and
> > libecpg6.dll, so that the application can fail to run with the
> > incompatible versions of libpq and libecpg.=C2=A0=C2=A0FYI:
>
> Does this mean you cannot have to versions of libpq installed on the same
> Windows system at the same time?

No, you can have different versions in separate folders, as in:

C:\Program Files\PostgreSQL\9.2
C:\Program Files\PostgreSQL\9.5

and change the PATH environment variable to point to a newer version when you want to use the existing application without rebuilding it.

However, the problem I pointed out is that when the new library is incompatible with the older one, say the major version of libpq.dll changes from 5 to 6, the application user and/or developer cannot notice the incompatibility immediately and easily. On Unix/Linux, the application fails to start because the older library is not found. On the other hand, the application will start on Windows and probably cause difficult trouble due to the incompatibility.

Regards
Takayuki Tsunakawa

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2016-06-01 03:48:43 PostmasterPid not marked with PGDLLIMPORT
Previous Message Robert Haas 2016-06-01 02:33:49 Re: Performance degradation in commit ac1d794