Postgresql-8.4.6, 64bit, Solaris 10u9, dtrace - Mailing list pgsql-general

From dennis jenkins
Subject Postgresql-8.4.6, 64bit, Solaris 10u9, dtrace
Date
Msg-id AANLkTi=f78DidrA=QMpts0ZxtEmRkQMWXUPtbO-6HkeQ@mail.gmail.com
Whole thread Raw
Responses Re: Postgresql-8.4.6, 64bit, Solaris 10u9, dtrace  (dennis jenkins <dennis.jenkins.75@gmail.com>)
List pgsql-general
Hello Everyone,

    My goal is to install a 64-bit build of the latest Postgresql 8.4
(not ready for 9.0 yet) onto a Solaris 10u9 server (Intel chips,
X4270), with dtrace support.  Postgresql compiles just fine when
configured with "--disable-dtrace".  Attempting to compile when
configured with "--enable-dtrace" fails.  Specifically, the dtrace
compiler utility fails to compile "src/backend/utils/probes.d":

$ ./configure CC="gcc -m64" MAKE=gmake DTRACEFLAGS='-64'
--prefix=/opt/local/x64/postgresql-8.4.6 --enable-dtrace
--with-openssl --with-pam --enable-thread-safety --enable-debug
--with-libraries=/opt/local/x64/openssl-1.0.0c/lib:/opt/local/x64/readline-6.1/lib
--with-includes=/opt/local/x64/openssl-1.0.0c/include:/opt/local/x64/readline-6.1/include

$ gmake
(lots of output omitted)
dtrace: failed to link script utils/probes.d: an error was encountered
while processing access/transam/clog.o
gmake[2]: *** [utils/probes.o] Error 1

  Google reveals very little about this error.  Others reported
problems compiling Postgresql-8.2 with dtrace on Solaris 10u3.  A fix
was promised for 10u4.  I can only surmise that the fix failed.  The
reported issue was that dtrace was unable to create probes to
statically defined functions.

  Someone suggested building postgresql on Solaris Express (what will
become Solaris 11), and then installing the binaries on Solaris 10.
So I tried that.  I build Postgresql without dtrace and installed it
on Solaris 10.  I build a virtual machine with Oracle Solaris Express,
installed the gcc compiler and a few other tools.  I then build and
installed "readline", "openssl", "postgresql" and "slony" following my
build instructions, except that I did "--enable-dtrace" on postgresql.
 It built and installed just fine.  So I tarred up
"/opt/local/x64/postgresql-8.4.6" and copied the tarball to the
Solaris-10 server, renamed the existing install to
".../no-dtrace-postgresql", untarred the build with dtrace.  I then
fired up postgresql using my SMF script and it worked GREAT!!!!!

   Awesome I thought... Until I tried to use the same dtrace script
provided in section 26.4.3 "Using Probes" on the postgresql.org web
site (http://www.postgresql.org/docs/8.4/static/dynamic-trace.html).
I got this error:

# ./script.d 4759
dtrace: failed to compile script ./exp-1.d: line 3: probe description
postgresql4759:::transaction-start does not match any probes

  So I checked to see if there were ANY dtrace providers listed...

# dtrace -l
   ID   PROVIDER            MODULE                          FUNCTION NAME

  None.... "dtrace -l" on Solaris-11 lists 66,218 of them.

root@solaris-11:~# dtrace -l | wc -l
66218


  My questions are as follows:

1) Has anyone else successfully built Postgresql (v8 or v9) on
Solaris-10 with dtrace support?  If so, what did I do wrong?

2) Has anyone else successfully used dtrace on Postgresql (any build)
on SOlaris-10?

3) Any idea why dtrace itself is bjorked on Solaris-10?

pgsql-general by date:

Previous
From: shl7c
Date:
Subject: Re: tablespace restore
Next
From: "Herouth Maoz"
Date:
Subject: Adding more space, and a vacuum question.