aboutsummaryrefslogtreecommitdiff
path: root/doc/FAQ_Solaris
diff options
context:
space:
mode:
Diffstat (limited to 'doc/FAQ_Solaris')
-rw-r--r--doc/FAQ_Solaris164
1 files changed, 123 insertions, 41 deletions
diff --git a/doc/FAQ_Solaris b/doc/FAQ_Solaris
index 9d6b8f97b15..78a003120bf 100644
--- a/doc/FAQ_Solaris
+++ b/doc/FAQ_Solaris
@@ -1,11 +1,9 @@
============================================================
Frequently Asked Questions (FAQ) for PostgreSQL
Sun Solaris specific
-to be read in conjunction with the installation instructions
+To be read in conjunction with the installation instructions.
============================================================
-last updated: $Date: 2003/10/09 17:11:13 $
-
-current maintainer: Peter Eisentraut <peter_e@gmx.net>
+Last updated: $Date: 2006/10/10 00:29:14 $
Contents:
@@ -15,73 +13,89 @@ 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?
You will need
-- GNU zip (for installing the documentation)
-- GNU make
-- GNU readline library (optional)
-- GCC (if you don't have Sun's compiler)
+ GNU zip (for installing the documentation)
+ GNU make
+ GNU readline library (optional)
+ Sun Studio CC or GCC
+
+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:
-If you like Solaris packages, you can find these tools here:
-http://www.sunfreeware.com
+ 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.
+ http://www.gnu.org/order/ftp.html
+
+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?
-When you build PostgreSQL with OpenSSL support you might get
-compilation errors in the following files:
+When you build PostgreSQL with OpenSSL support you might get compilation
+errors in the following files:
-src/backend/libpq/crypt.c
-src/backend/libpq/password.c
-src/interfaces/libpq/fe-auth.c
-src/interfaces/libpq/fe-connect.c
+ src/backend/libpq/crypt.c
+ src/backend/libpq/password.c
+ src/interfaces/libpq/fe-auth.c
+ src/interfaces/libpq/fe-connect.c
This is because of a namespace conflict between the standard
/usr/include/crypt.h header and the header files provided by OpenSSL.
Upgrading your OpenSSL installation to version 0.9.6a fixes this
-problem.
+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.,
-
-LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib
-export LD_LIBRARY_PATH
+This is probably a case of the run-time linker being unable to find 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.,
-and restart configure. You will also have to keep this setting
-whenever you run any of the installed PostgreSQL programs.
+ LD_LIBRARY_PATH=/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib
+ export LD_LIBRARY_PATH
-Alternatively, set the environment variable LD_RUN_PATH. See the
-ld(1) man page for more information.
+and restart configure. You will also have to keep this setting whenever
+you run any of the installed PostgreSQL programs. Alternatively, set
+the environment variable LD_RUN_PATH. See the ld(1) man page for more
+information.
4) Why does my 64-bit build sometimes crash?
On Solaris 7 and older, the 64-bit version of libc has a buggy vsnprintf
-routine, which leads to erratic core dumps in PostgreSQL. The simplest known
-workaround is to force PostgreSQL to use its own version of vsnprintf rather
-than the library copy. To do this, after you run 'configure' edit a file
-produced by configure:
+routine, which leads to erratic core dumps in PostgreSQL. The simplest
+known workaround is to force PostgreSQL to use its own version of
+vsnprintf rather than the library copy. To do this, after you run
+'configure' edit a file produced by configure:
In src/Makefile.global, change the line
+
LIBOBJS =
+
to read
+
LIBOBJS = snprintf.o
(There might be other files already listed in this variable. Order
@@ -92,10 +106,78 @@ Then build as usual.
5) How can I compile for optimum performance?
-Try using the "-fast" compile flag. The binaries might not be portable to
-other Solaris systems, and you might need to compile everything that links
-to PostgreSQL with "-fast", but PostgreSQL will run significantly faster,
-50% faster on some tests.
+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