Обсуждение: error while installing auto_explain contrib module

Поиск
Список
Период
Сортировка

error while installing auto_explain contrib module

От
Sachin Kotwal
Дата:
Hi,

I am trying to install auto_explain on PostgreSQL-9.3.11
OS X EI Capitan - 10.11


I am getting following error:

------
$ pwd
/Users/sachin/postgres_git/postgres/contrib/auto_explain

$ make
gcc -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -g -pg   -I. -I. -I../../src/include -I/opt/local/include/libxml2   -c -o auto_explain.o auto_explain.c
gcc -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -g -pg   -bundle -multiply_defined suppress -o auto_explain.so auto_explain.o -L../../src/port -L../../src/common -L/opt/local/lib  -Wl,-dead_strip_dylibs   -bundle_loader ../../src/backend/postgres
ld: warning: directory not found for option '-L/usr/local/lib'
Undefined symbols for architecture x86_64:
  "_MemoryContextSwitchTo", referenced from:
      _explain_ExecutorStart in auto_explain.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [auto_explain.so] Error 1


-- 

Thanks and Regards,
Sachin Kotwal

Re: error while installing auto_explain contrib module

От
Adrian Klaver
Дата:
On 04/18/2016 11:46 PM, Sachin Kotwal wrote:
> Hi,
>
> I am trying to install auto_explain on PostgreSQL-9.3.11
> OS X EI Capitan - 10.11

Did you install the 9.3.11 server from source also?

>
>
> I am getting following error:
>
> ------
> $ pwd
> /Users/sachin/postgres_git/postgres/contrib/auto_explain

What version of Postgres is the above pointing to?

>
> $ make
> gcc -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith
> -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
> -Wformat-security -fno-strict-aliasing -fwrapv
> -Wno-unused-command-line-argument -g -pg   -I. -I. -I../../src/include
> -I/opt/local/include/libxml2   -c -o auto_explain.o auto_explain.c
> gcc -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith
> -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
> -Wformat-security -fno-strict-aliasing -fwrapv
> -Wno-unused-command-line-argument -g -pg   -bundle -multiply_defined
> suppress -o auto_explain.so auto_explain.o -L../../src/port
> -L../../src/common -L/opt/local/lib  -Wl,-dead_strip_dylibs
> -bundle_loader ../../src/backend/postgres
> ld: warning: directory not found for option '-L/usr/local/lib'
> Undefined symbols for architecture x86_64:
>    "_MemoryContextSwitchTo", referenced from:
>        _explain_ExecutorStart in auto_explain.o
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> make: *** [auto_explain.so] Error 1
>
>
> --
>
> Thanks and Regards,
> Sachin Kotwal


--
Adrian Klaver
adrian.klaver@aklaver.com


Re: error while installing auto_explain contrib module

От
Sachin Kotwal
Дата:


On Tue, Apr 19, 2016 at 7:02 PM, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 04/18/2016 11:46 PM, Sachin Kotwal wrote:
Hi,

I am trying to install auto_explain on PostgreSQL-9.3.11
OS X EI Capitan - 10.11

Did you install the 9.3.11 server from source also?

Yes. I have clone git repository and checkout for  pg-9.3.11





I am getting following error:

------
$ pwd
/Users/sachin/postgres_git/postgres/contrib/auto_explain

What version of Postgres is the above pointing to?

This is my postgres git repository and i have checkout for pg-9.3.11
So above is pointing to auto_explain directory under contrib for same postgres version.
Here is my pg_config output:

-----
$ pg_config 
BINDIR = /Users/sachin/pg_git_install/9.3.11/bin
DOCDIR = /Users/sachin/pg_git_install/9.3.11/share/doc/postgresql
HTMLDIR = /Users/sachin/pg_git_install/9.3.11/share/doc/postgresql
INCLUDEDIR = /Users/sachin/pg_git_install/9.3.11/include
PKGINCLUDEDIR = /Users/sachin/pg_git_install/9.3.11/include/postgresql
INCLUDEDIR-SERVER = /Users/sachin/pg_git_install/9.3.11/include/postgresql/server
LIBDIR = /Users/sachin/pg_git_install/9.3.11/lib
PKGLIBDIR = /Users/sachin/pg_git_install/9.3.11/lib/postgresql
LOCALEDIR = /Users/sachin/pg_git_install/9.3.11/share/locale
MANDIR = /Users/sachin/pg_git_install/9.3.11/share/man
SHAREDIR = /Users/sachin/pg_git_install/9.3.11/share/postgresql
SYSCONFDIR = /Users/sachin/pg_git_install/9.3.11/etc/postgresql
PGXS = /Users/sachin/pg_git_install/9.3.11/lib/postgresql/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--with-libxml' '--enable-cassert' '--enable-debug' '--enable-profiling' '--prefix=/Users/sachin/pg_git_install/9.3.11/' '--with-python' 'CFLAGS=-g -O0'
CC = gcc
CPPFLAGS = -I/usr/include/libxml2
CFLAGS = -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -g -pg 
CFLAGS_SL = 
LDFLAGS = -L../../../src/common -Wl,-dead_strip_dylibs
LDFLAGS_EX = 
LDFLAGS_SL = 
LIBS = -lpgport -lpgcommon -lxml2 -lz -lreadline -lm 
VERSION = PostgreSQL 9.3.11


----
 


$ make
gcc -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-Wno-unused-command-line-argument -g -pg   -I. -I. -I../../src/include
-I/opt/local/include/libxml2   -c -o auto_explain.o auto_explain.c
gcc -g -O0 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-Wno-unused-command-line-argument -g -pg   -bundle -multiply_defined
suppress -o auto_explain.so auto_explain.o -L../../src/port
-L../../src/common -L/opt/local/lib  -Wl,-dead_strip_dylibs
-bundle_loader ../../src/backend/postgres
ld: warning: directory not found for option '-L/usr/local/lib'
Undefined symbols for architecture x86_64:
   "_MemoryContextSwitchTo", referenced from:
       _explain_ExecutorStart in auto_explain.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make: *** [auto_explain.so] Error 1


--

Thanks and Regards,
Sachin Kotwal


--
Adrian Klaver
adrian.klaver@aklaver.com



--

Thanks and Regards,
Sachin Kotwal

Re: error while installing auto_explain contrib module

От
Tom Lane
Дата:
Sachin Kotwal <kotsachin@gmail.com> writes:
> On Tue, Apr 19, 2016 at 7:02 PM, Adrian Klaver <adrian.klaver@aklaver.com>
> wrote:
>> Did you install the 9.3.11 server from source also?

> Yes. I have clone git repository and checkout for  pg-9.3.11

The reason for that question is that the most obvious explanation for this
failure is that the auto_explain build is seeing a different value for
PG_USE_INLINE than the main server build did.  So probably your include
path is picking up a pg_config.h that does not match the postgres
executable the link is happening against.

            regards, tom lane


Re: error while installing auto_explain contrib module

От
Sachin Kotwal
Дата:
Hi Tom,

Thanks for reply.

On Tue, Apr 19, 2016 at 7:40 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Sachin Kotwal <kotsachin@gmail.com> writes:
> On Tue, Apr 19, 2016 at 7:02 PM, Adrian Klaver <adrian.klaver@aklaver.com>
> wrote:
>> Did you install the 9.3.11 server from source also?

> Yes. I have clone git repository and checkout for  pg-9.3.11

The reason for that question is that the most obvious explanation for this
failure is that the auto_explain build is seeing a different value for
PG_USE_INLINE than the main server build did. 

Ok. But I am not getting getting why auto_explain is doing that.
All pg_config parameters have correct value as per my installation posted in last mail.

Is it correct behaviour of auto_explain or it is bug ?
 
So probably your include
path is picking up a pg_config.h that does not match the postgres
executable the link is happening against.

                        regards, tom lane

If pg_config showing following as INCLUDEDIR path

INCLUDEDIR = /Users/sachin/pg_git_install/9.3.11/include


How it can take pg_config.h from different include path?

Can you tell me where i should look in auto_explain to fix this?


--

Thanks and Regards,
Sachin Kotwal

Re: error while installing auto_explain contrib module

От
Adrian Klaver
Дата:
On 04/21/2016 02:23 AM, Sachin Kotwal wrote:
> Hi Tom,
>
> Thanks for reply.
>
> On Tue, Apr 19, 2016 at 7:40 PM, Tom Lane <tgl@sss.pgh.pa.us
> <mailto:tgl@sss.pgh.pa.us>> wrote:
>
>     Sachin Kotwal <kotsachin@gmail.com <mailto:kotsachin@gmail.com>> writes:
>     > On Tue, Apr 19, 2016 at 7:02 PM, Adrian Klaver <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>>
>     > wrote:
>     >> Did you install the 9.3.11 server from source also?
>
>     > Yes. I have clone git repository and checkout for  pg-9.3.11
>
>     The reason for that question is that the most obvious explanation
>     for this
>     failure is that the auto_explain build is seeing a different value for
>     PG_USE_INLINE than the main server build did.
>
>
> Ok. But I am not getting getting why auto_explain is doing that.
> All pg_config parameters have correct value as per my installation
> posted in last mail.

Do you have a Postgres instance installed that did not come from the Git
clone?

>
> Is it correct behaviour of auto_explain or it is bug ?
>
>     So probably your include
>     path is picking up a pg_config.h that does not match the postgres
>     executable the link is happening against.
>
>                              regards, tom lane
>
>
> If pg_config showing following as INCLUDEDIR path
>
> INCLUDEDIR = /Users/sachin/pg_git_install/9.3.11/include
>
>
> How it can take pg_config.h from different include path?
>
> Can you tell me where i should look in auto_explain to fix this?
>
>
> --
>
> Thanks and Regards,
> Sachin Kotwal


--
Adrian Klaver
adrian.klaver@aklaver.com


Re: error while installing auto_explain contrib module

От
Sachin Kotwal
Дата:


On Thu, Apr 21, 2016 at 7:20 PM, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 04/21/2016 02:23 AM, Sachin Kotwal wrote:
Hi Tom,

Thanks for reply.

On Tue, Apr 19, 2016 at 7:40 PM, Tom Lane <tgl@sss.pgh.pa.us
<mailto:tgl@sss.pgh.pa.us>> wrote:

    Sachin Kotwal <kotsachin@gmail.com <mailto:kotsachin@gmail.com>> writes:
    > On Tue, Apr 19, 2016 at 7:02 PM, Adrian Klaver <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>>
    > wrote:
    >> Did you install the 9.3.11 server from source also?

    > Yes. I have clone git repository and checkout for  pg-9.3.11

    The reason for that question is that the most obvious explanation
    for this
    failure is that the auto_explain build is seeing a different value for
    PG_USE_INLINE than the main server build did.


Ok. But I am not getting getting why auto_explain is doing that.
All pg_config parameters have correct value as per my installation
posted in last mail.

Do you have a Postgres instance installed that did not come from the Git clone?

Currently I do not have Postgres installation from other than Git but i will try that soon.

I did same Postgres version installation of  on CentOS 6 , It is working fine.

I think it is problem with OS X. On OS X contrib tools unable to find correct installation paths.
I feel we need to fix them.



Is it correct behaviour of auto_explain or it is bug ?

    So probably your include
    path is picking up a pg_config.h that does not match the postgres
    executable the link is happening against.

                             regards, tom lane


If pg_config showing following as INCLUDEDIR path

INCLUDEDIR = /Users/sachin/pg_git_install/9.3.11/include


How it can take pg_config.h from different include path?

Can you tell me where i should look in auto_explain to fix this?


--

Thanks and Regards,
Sachin Kotwal


--
Adrian Klaver
adrian.klaver@aklaver.com



--

Thanks and Regards,
Sachin Kotwal

Re: error while installing auto_explain contrib module

От
Adrian Klaver
Дата:
On 04/21/2016 07:13 AM, Sachin Kotwal wrote:
>
>
> On Thu, Apr 21, 2016 at 7:20 PM, Adrian Klaver
> <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>> wrote:
>
>     On 04/21/2016 02:23 AM, Sachin Kotwal wrote:
>
>         Hi Tom,
>
>         Thanks for reply.
>
>         On Tue, Apr 19, 2016 at 7:40 PM, Tom Lane <tgl@sss.pgh.pa.us
>         <mailto:tgl@sss.pgh.pa.us>
>         <mailto:tgl@sss.pgh.pa.us <mailto:tgl@sss.pgh.pa.us>>> wrote:
>
>              Sachin Kotwal <kotsachin@gmail.com
>         <mailto:kotsachin@gmail.com> <mailto:kotsachin@gmail.com
>         <mailto:kotsachin@gmail.com>>> writes:
>              > On Tue, Apr 19, 2016 at 7:02 PM, Adrian Klaver
>         <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
>         <mailto:adrian.klaver@aklaver.com
>         <mailto:adrian.klaver@aklaver.com>>>
>              > wrote:
>              >> Did you install the 9.3.11 server from source also?
>
>              > Yes. I have clone git repository and checkout for  pg-9.3.11
>
>              The reason for that question is that the most obvious
>         explanation
>              for this
>              failure is that the auto_explain build is seeing a
>         different value for
>              PG_USE_INLINE than the main server build did.
>
>
>         Ok. But I am not getting getting why auto_explain is doing that.
>         All pg_config parameters have correct value as per my installation
>         posted in last mail.
>
>
>     Do you have a Postgres instance installed that did not come from the
>     Git clone?
>
>
> Currently I do not have Postgres installation from other than Git but i
> will try that soon.
>
> I did same Postgres version installation of  on CentOS 6 , It is working
> fine.

You did that as source install from the Git repo or via a package?

>
> I think it is problem with OS X. On OS X contrib tools unable to find
> correct installation paths.
> I feel we need to fix them.

I do not use OS X, so I will not be of much help there.


>
>
>
>         Is it correct behaviour of auto_explain or it is bug ?
>
>              So probably your include
>              path is picking up a pg_config.h that does not match the
>         postgres
>              executable the link is happening against.
>
>                                       regards, tom lane
>
>
>         If pg_config showing following as INCLUDEDIR path
>
>         INCLUDEDIR = /Users/sachin/pg_git_install/9.3.11/include
>
>
>         How it can take pg_config.h from different include path?
>
>         Can you tell me where i should look in auto_explain to fix this?
>
>
>         --
>
>         Thanks and Regards,
>         Sachin Kotwal
>
>
>
>     --
>     Adrian Klaver
>     adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
>
>
>
>
> --
>
> Thanks and Regards,
> Sachin Kotwal


--
Adrian Klaver
adrian.klaver@aklaver.com