Re: What generates pg_config.h?

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Travis Allison <travisallison(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: What generates pg_config.h?
Date: 2018-01-05 18:24:57
Message-ID: 59902831-ba5d-6fb9-8db8-a074c08e8106@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Azimuddin Mohammed 2018-01-05 19:07:10 Postgres HA
Previous Message Travis Allison 2018-01-05 17:07:27 What generates pg_config.h?