diff mbox

[v1] collectd: fix postgresql library detection

Message ID 1426628645-26181-1-git-send-email-ps.report@gmx.net
State Accepted
Headers show

Commit Message

Peter Seiderer March 17, 2015, 9:44 p.m. UTC
Explicitly link against -lpthread and -lm.

Fixes ([1]):
   checking for PQconnectdb in -lpq... no
   checking for PQserverVersion in -lpq... no
   postgresql  . . . . . no (dependency error)

[1] http://autobuild.buildroot.org/results/926/926a43b8f635790d7e9abdc977ea803ddaf8a523/

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
 package/collectd/collectd.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Petazzoni March 17, 2015, 9:58 p.m. UTC | #1
Dear Peter Seiderer,

On Tue, 17 Mar 2015 22:44:05 +0100, Peter Seiderer wrote:

>  ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
>  	COLLECTD_CONF_OPTS += --with-libpq=$(STAGING_DIR)/usr/bin/pg_config
> +	COLLECTD_CONF_ENV = LIBS="-lpthread -lm"

If they are needed, why isn't pg_config returning those linker flags?

I'm sorry to be annoying, but I really don't like adding LIBS variables
all over the place, because they tend to become wrong/unneeded, and we
never notice.

Thomas
Peter Seiderer March 17, 2015, 10:17 p.m. UTC | #2
Hello Thomas,

> Gesendet: Dienstag, 17. März 2015 um 22:58 Uhr
> Von: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>
> An: "Peter Seiderer" <ps.report@gmx.net>
> Cc: buildroot@busybox.net
> Betreff: Re: [Buildroot] [PATCH v1] collectd: fix postgresql library detection
>
> Dear Peter Seiderer,
> 
> On Tue, 17 Mar 2015 22:44:05 +0100, Peter Seiderer wrote:
> 
> >  ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
> >  	COLLECTD_CONF_OPTS += --with-libpq=$(STAGING_DIR)/usr/bin/pg_config
> > +	COLLECTD_CONF_ENV = LIBS="-lpthread -lm"
> 
> If they are needed, why isn't pg_config returning those linker flags?
> 

Because pg_config only implements --includedir and --libdir:
    $ cat host/usr/sh4-buildroot-linux-uclibc/sysroot/usr/bin/pg_config
#!/bin/sh

#
# Minimal pg_config implementation as replacement for the native pg_config application
# Only implements --includedir and --libdir
#

prefix=/home/seiderer/BUildroot/build_sh_postgresql_collectd/host/usr/sh4-buildroot-linux-uclibc/sysroot/usr

case "$1" in
  --includedir)
        echo "$prefix/include"
        ;;
  --libdir)
        echo "$prefix/lib"
        ;;
  *)
        echo "Usage: $0 {--includedir|--libdir}"
esac


And collectd configure uses only this two options...

> I'm sorry to be annoying, but I really don't like adding LIBS variables
> all over the place, because they tend to become wrong/unneeded, and we
> never notice.

...suspected this argument, I am open for other suggestions, but I think
this aproach is the least invasive...

Regards,
Peter

> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
>
diff mbox

Patch

diff --git a/package/collectd/collectd.mk b/package/collectd/collectd.mk
index a4b91d6..4a40faa 100644
--- a/package/collectd/collectd.mk
+++ b/package/collectd/collectd.mk
@@ -141,6 +141,7 @@  ifeq ($(BR2_PACKAGE_NETSNMP),y)
 endif
 ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
 	COLLECTD_CONF_OPTS += --with-libpq=$(STAGING_DIR)/usr/bin/pg_config
+	COLLECTD_CONF_ENV = LIBS="-lpthread -lm"
 endif
 ifeq ($(BR2_PACKAGE_YAJL),y)
 	COLLECTD_CONF_OPTS += --with-yajl=$(STAGING_DIR)/usr