Postgresql-8.4.6, 64bit, Solaris 10u9, dtrace

From: dennis jenkins <dennis(dot)jenkins(dot)75(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Postgresql-8.4.6, 64bit, Solaris 10u9, dtrace
Date: 2011-01-28 19:19:10
Message-ID: AANLkTi=f78DidrA=QMpts0ZxtEmRkQMWXUPtbO-6HkeQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)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?

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jasen Betts 2011-01-28 20:51:38 Re: Dumpall without OID
Previous Message shl7c 2011-01-28 18:55:47 Re: tablespace restore