Re: What generates pg_config.h? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: What generates pg_config.h?
Date
Msg-id 59902831-ba5d-6fb9-8db8-a074c08e8106@aklaver.com
Whole thread Raw
In response to What generates pg_config.h?  (Travis Allison <travisallison@gmail.com>)
Responses Re: What generates pg_config.h?  (Travis Allison <travisallison@gmail.com>)
List pgsql-general
On 01/05/2018 09:07 AM, Travis Allison wrote:
> Hi,
> 
> I have postgres 9.5 and 9.6 installed.  pg_config points to 9.6.
> I am trying to compile a postgresql plugin (Timescaledb).  I am getting 
> an error:
> -----------------------------------------------
> /usr/include/postgresql/pg_config.h:733:0: warning: "PACKAGE_VERSION" 
> redefined
>   #define PACKAGE_VERSION "10.0"
>   ^
> In file included from /usr/include/postgresql/9.6/server/c.h:53:0,
>                   from /usr/include/postgresql/9.6/server/postgres.h:47,
>                   from /mnt/data/timescaledb/src/init.c:1:
> /usr/include/postgresql/9.6/server/pg_config.h:740:0: note: this is the 
> location of the previous definition
>   #define PACKAGE_VERSION "9.6.5"
> -----------------------------------------------------
> 
> The command pg_config gives the following:
> 
> ---------------------------------------
> BINDIR = /usr/lib/postgresql/9.6/bin
> DOCDIR = /usr/share/doc/postgresql-doc-9.6
> HTMLDIR = /usr/share/doc/postgresql-doc-9.6
> INCLUDEDIR = /usr/include/postgresql
> PKGINCLUDEDIR = /usr/include/postgresql
> INCLUDEDIR-SERVER = /usr/include/postgresql/9.6/server
> LIBDIR = /usr/lib/x86_64-linux-gnu
> PKGLIBDIR = /usr/lib/postgresql/9.6/lib
> LOCALEDIR = /usr/share/locale
> MANDIR = /usr/share/postgresql/9.6/man
> SHAREDIR = /usr/share/postgresql/9.6
> SYSCONFDIR = /etc/postgresql-common
> PGXS = /usr/lib/postgresql/9.6/lib/pgxs/src/makefiles/pgxs.mk 
> <http://pgxs.mk>
> CONFIGURE = '--with-tcl' '--with-perl' '--with-python' '--with-pam' 
> '--with-openssl' '--with-libxml' '--with-libxslt' 
> '--with-tclconfig=/usr/lib/x86_64-linux-gnu/tcl8.6' 
> '--with-includes=/usr/include/tcl8.6' 'PYTHON=/usr/bin/python' 
> '--mandir=/usr/share/postgresql/9.6/man' 
> '--docdir=/usr/share/doc/postgresql-doc-9.6' 
> '--sysconfdir=/etc/postgresql-common' '--datarootdir=/usr/share/' 
> '--datadir=/usr/share/postgresql/9.6' 
> '--bindir=/usr/lib/postgresql/9.6/bin' 
> '--libdir=/usr/lib/x86_64-linux-gnu/' 
> '--libexecdir=/usr/lib/postgresql/' 
> '--includedir=/usr/include/postgresql/' '--enable-nls' 
> '--enable-integer-datetimes' '--enable-thread-safety' 
> '--enable-tap-tests' '--enable-debug' '--disable-rpath' 
> '--with-uuid=e2fs' '--with-gnu-ld' '--with-pgport=5432' 
> '--with-system-tzdata=/usr/share/zoneinfo' '--with-systemd' 'CFLAGS=-g 
> -O2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -pie 
> -fno-omit-frame-pointer' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro 
> -Wl,-z,now' '--with-gssapi' '--with-ldap' 
> '--with-includes=/usr/include/mit-krb5' '--with-libs=/usr/lib/mit-krb5' 
> '--with-libs=/usr/lib/x86_64-linux-gnu/mit-krb5' '--with-selinux' 
> 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
> CC = gcc
> CPPFLAGS = -DFRONTEND -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE 
> -I/usr/include/libxml2 -I/usr/include/mit-krb5
> CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith 
> -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute 
> -Wformat-security -fno-strict-aliasing -fwrapv 
> -fexcess-precision=standard -g -g -O2 -fstack-protector-strong -Wformat 
> -Werror=format-security -fPIC -pie -fno-omit-frame-pointer
> CFLAGS_SL = -fPIC
> LDFLAGS = -L../../src/common -Wl,-Bsymbolic-functions -Wl,-z,relro 
> -Wl,-z,now -L/usr/lib/x86_64-linux-gnu/mit-krb5 -Wl,--as-needed
> LDFLAGS_EX =
> LDFLAGS_SL =
> LIBS = -lpgcommon -lpgport -lselinux -lxslt -lxml2 -lpam -lssl -lcrypto 
> -lgssapi_krb5 -lz -ledit -lrt -lcrypt -ldl -lm
> VERSION = PostgreSQL 9.6.5
> -------------------------------------------------
> 
> So my question is: what is generating the 
> /usr/include/postgresql/pg_config.h file?  Why is it different than the 
> /usr/include/postgresql/9.6/server/pg_config.h file?

I am guessing you have some part of Postgres 10 installed. During the 
build the extension is getting to /usr/include/postgresql/pg_config.h 
before it gets to /usr/include/postgresql/9.6/server/pg_config.h.  Crank 
up your package manager and see what your distro has installed? Along 
that line knowing what distro and version you are using as well as how 
you installed Postgres 9.5 and 9.6 would be helpful.

> 
> Thanks!
> 
> Travis


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Travis Allison
Date:
Subject: What generates pg_config.h?
Next
From: Travis Allison
Date:
Subject: Re: What generates pg_config.h?