From 6fa875d7ce918706fc00b7f53a21d67f46a2d837 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 4 Oct 2006 22:03:22 +0000 Subject: [PATCH] Update Solaris FAQ. Zdenek Kotala --- doc/FAQ_Solaris | 115 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 101 insertions(+), 14 deletions(-) diff --git a/doc/FAQ_Solaris b/doc/FAQ_Solaris index 22bf71612e..5ae45aa61f 100644 --- a/doc/FAQ_Solaris +++ b/doc/FAQ_Solaris @@ -3,9 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL Sun Solaris specific to be read in conjunction with the installation instructions ============================================================ -last updated: $Date: 2006/10/02 23:01:17 $ - -current maintainer: Peter Eisentraut +last updated: $Date: 2006/10/04 22:03:22 $ Contents: @@ -15,6 +13,10 @@ Contents: 3) Why does configure complain about a failed test program? 4) Why does my 64-bit build sometimes crash? 5) How can I compile for optimum performance? +6) How to compile PostgreSQL with Sun Studio? +7) Where I can download prepared Solaris packages? +8) How to tune PostgreSQL and Solaris for best performance? +9) Can I use dtrace for tracing PostgreSQL? 1) What tools do I need to build and install PostgreSQL on Solaris? @@ -23,18 +25,27 @@ You will need - GNU zip (for installing the documentation) - GNU make - GNU readline library (optional) -- GCC (if you don't have Sun's compiler) +- Sun Studio CC or GCC -If you like Solaris packages, you can find these tools here: -http://www.sunfreeware.com +You can download Sun Studio from: +http://developers.sun.com/prodtech/cc/downloads/index.jsp + +Many of GNU tools are integrated into the Solaris 10 or they are +present on the Solaris companion CD. + +If you like packages for older version of Solaris, you can find these +tools here: +http://www.sunfreeware.com or http://www.blastwave.org If you prefer sources, look here: http://www.gnu.org/order/ftp.html -You can build with either GCC or Sun's compiler suite. We have heard -reports of problems when using gcc 2.95.1; gcc 2.95.3 or later is -recommended. If you are using Sun's compiler, be careful *not* to -select /usr/ucb/cc; use /opt/SUNWspro/bin/cc. +You can build with either GCC or Sun's compiler suite. For better +code optimalization Sun's compiler is strongly recommended on the +SPARC architecture. We have heard reports of problems when using +gcc 2.95.1; gcc 2.95.3 or later is recommended. If you are using +Sun's compiler, be careful *not* to select /usr/ucb/cc; +use /opt/SUNWspro/bin/cc. 2) Why do I get problems when building with OpenSSL support? @@ -53,15 +64,17 @@ This is because of a namespace conflict between the standard Upgrading your OpenSSL installation to version 0.9.6a fixes this problem. +Solaris 9 and above already newer version of OpenSSL. + 3) Why does configure complain about a failed test program? This is probably a case of the run-time linker being unable to find -libz or some other non-standard library, such as libssl. To point it -to the right location, set the LD_LIBRARY_PATH environment variable, -e.g., +some library. On solaris 8 and older it should be libz or some other +non-standard library, such as libssl. To point it to the right location, +set the LD_LIBRARY_PATH environment variable, e.g., -LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib +LD_LIBRARY_PATH=/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib export LD_LIBRARY_PATH and restart configure. You will also have to keep this setting @@ -88,3 +101,77 @@ to read does not matter.) Then build as usual. + + +5) How can I compile for optimum performance? + +On SPARC architecture Sun Studio is strongly recommended for compilation. +Try using -xO5 optimalization flag to generate significantly faster binaries. +Do not use any flags which modify behavior of floating point operations and +errno processing (e.g. -fast). These flags should raise some nonstandard +PostgreSQL behavior for example in the date/time computing. + +If you do not reason to use 64-bit binaries on SPARC, prefer 32-bit version. +The 64-bit operations are slower and 64-bit binaries are slower then 32-bits. +And on other side a 32-bit code on the AMD64 CPU family is not native and +that is why 32-bit code is significant slower on this CPU family. + + +6) How to compile PostgreSQL with Sun Studio? + +On Solaris 10 you can performed following steps: + +export CC=/opt/SUNWspro/bin/cc +export CFLAGS=-xO5 +export LDFLAGS=-lm +./configure --without-readline +gmake + + +7) Where I can download prepared Solaris packages? + +The PostgreSQL is bundled with Solaris 10 (from update 2). Official packages +are too available on http://pgfoundry.org/projects/solarispackages/. + +Packages for older Solaris version (8,9) you can download from: +http://www.sunfreeware.com or http://www.blastwave.org + + +8) How to tune PostgreSQL and Solaris for best performance? + +Some tuning tricks can be found here: +http://www.sun.com/servers/coolthreads/tnb/applications_postgresql.jsp + +This article is primary focused on T2000 platform, however, many of +recommendations are general for other hardware with Solaris. + + +9) Can I use dtrace for tracing PostgreSQL? + +The PostgreSQL 8.2 has implemented dtrace support. You can enable it by +the --enable-dtrace configure switch. If you want to compile a 64-bit code +with dtrace you must specify DTRACEFLAGS='-64', e.g. + +Using gcc compiler: +$ ./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ... + +Using Sun compiler: +$ configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64' + + +If you have some problem with postgres linking, looks like: + +Undefined first referenced + symbol in file +AbortTransaction utils/probes.o +CommitTransaction utils/probes.o +ld: fatal: Symbol referencing errors. No output written to postgres +collect2: ld returned 1 exit status +gmake: *** [postgres] Error 1 + +, check if you have Solaris 10u3 or newer installed on your box. + +You can also find more information here: +http://blogs.sun.com/robertlor/entry/user_level_dtrace_probes_in + +