Thread: LibreOffice driver 3: pg_config and linking statically to libpq

LibreOffice driver 3: pg_config and linking statically to libpq

From
Lionel Elie Mamane
Date:
(See part 1 for general introduction)

LibreOffice currently - when it rebuilds libpq, such as for most of
our official binaries - links statically against libpq.

I noticed that pg_config does not give the information of what
additional libraries to include in the link to resolve all symbols
that libpq needs:
* On the one hand, it gives too much since LIBS is filtered to only a  subset in src/interface/libpq/Makefile.
* On the other hand, it does not give enough, since it does not give  the value of LDAP_LIBS_FE anywhere, nor say if it
isnecessary to  add PTHREAD_LIBS.
 

This is not an immediate problem for LibreOffice: I export the value
of SHLIB_EXPORTS from src/interface/libpq/Makefile as a Makefile
snippet that gets imported in our build system or (on Microsoft
Windows) we just proceeded by "trial and error" until the link
succeeds.

However, I suggest it would be cleaner to give that kind of
information in pg_config, so that one can basically do something like:
$LINK_COMMAND -lpq $(pg_config --libpq-dep-libs)

and have it work automatically. You could also provide a pq.pc file
for pkgconfig, which would give nice nearly-automatic integration for
projects using e.g. autoconf and friends.

-- 
Lionel


Re: LibreOffice driver 3: pg_config and linking statically to libpq

From
Robert Haas
Date:
On Tue, Dec 13, 2011 at 6:05 AM, Lionel Elie Mamane <lionel@mamane.lu> wrote:
>  * On the one hand, it gives too much since LIBS is filtered to only a
>   subset in src/interface/libpq/Makefile.

What is it excluding that it ought to include?  I am not quite clear
on why that code is like that, but it appears to be intended that the
filter-list include everything that might be needed.

>  * On the other hand, it does not give enough, since it does not give
>   the value of LDAP_LIBS_FE anywhere, nor say if it is necessary to
>   add PTHREAD_LIBS.
>
> This is not an immediate problem for LibreOffice: I export the value
> of SHLIB_EXPORTS from src/interface/libpq/Makefile as a Makefile
> snippet that gets imported in our build system or (on Microsoft
> Windows) we just proceeded by "trial and error" until the link
> succeeds.
>
> However, I suggest it would be cleaner to give that kind of
> information in pg_config, so that one can basically do something like:
>
>  $LINK_COMMAND -lpq $(pg_config --libpq-dep-libs)
>
> and have it work automatically. You could also provide a pq.pc file
> for pkgconfig, which would give nice nearly-automatic integration for
> projects using e.g. autoconf and friends.

Care to propose a patch?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company