LibreOffice driver 3: pg_config and linking statically to libpq

Started by Lionel Elie Mamaneabout 14 years ago2 messages
#1Lionel Elie Mamane
lionel@mamane.lu

(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 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.

--
Lionel

#2Robert Haas
robertmhaas@gmail.com
In reply to: Lionel Elie Mamane (#1)
Re: LibreOffice driver 3: pg_config and linking statically to libpq

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