Cleanup pass

This commit is contained in:
Peter Eisentraut 2006-10-10 22:19:08 +00:00
parent ed95aea27d
commit 4e46f4799e

View File

@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL
Sun Solaris specific Sun Solaris specific
To be read in conjunction with the installation instructions. To be read in conjunction with the installation instructions.
============================================================ ============================================================
Last updated: $Date: 2006/10/05 03:13:15 $ Last updated: $Date: 2006/10/10 22:19:08 $
Contents: Contents:
@ -13,25 +13,25 @@ Contents:
3) Why does configure complain about a failed test program? 3) Why does configure complain about a failed test program?
4) Why does my 64-bit build sometimes crash? 4) Why does my 64-bit build sometimes crash?
5) How can I compile for optimum performance? 5) How can I compile for optimum performance?
6) How to compile PostgreSQL with Sun Studio? 6) Where I can download prepared Solaris packages?
7) Where I can download prepared Solaris packages? 7) How can I tune PostgreSQL and Solaris for performance?
8) How to tune PostgreSQL and Solaris for best performance? 8) Can I use DTrace for tracing PostgreSQL?
9) Can I use dtrace for tracing PostgreSQL?
1) What tools do I need to build and install PostgreSQL on Solaris? 1) What tools do I need to build and install PostgreSQL on Solaris?
You will need You will need
GNU zip (for installing the documentation) gzip (for installing the documentation)
GNU make GNU Make
GNU readline library (optional) GNU Readline library (optional)
Sun Studio CC or GCC Sun Studio CC or GCC
You can download Sun Studio from: You can download Sun Studio from:
http://developers.sun.com/prodtech/cc/downloads/index.jsp http://developers.sun.com/prodtech/cc/downloads/index.jsp
Many of GNU tools are integrated into the Solaris 10 or they are Many of GNU tools are integrated into Solaris 10, or they are present
present on the Solaris companion CD. on the Solaris companion CD.
If you like packages for older version of Solaris, you can find these If you like packages for older version of Solaris, you can find these
tools here: tools here:
@ -42,11 +42,12 @@ If you prefer sources, look here:
http://www.gnu.org/order/ftp.html http://www.gnu.org/order/ftp.html
You can build with either GCC or Sun's compiler suite. For better code You can build with either GCC or Sun's compiler suite. For better
optimalization Sun's compiler is strongly recommended on the SPARC code optimization, Sun's compiler is strongly recommended on the SPARC
architecture. We have heard reports of problems when using gcc 2.95.1; architecture. We have heard reports of problems when using GCC
gcc 2.95.3 or later is recommended. If you are using Sun's compiler, be 2.95.1; gcc 2.95.3 or later is recommended. If you are using Sun's
careful *not* to select /usr/ucb/cc; use /opt/SUNWspro/bin/cc. 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? 2) Why do I get problems when building with OpenSSL support?
@ -63,15 +64,15 @@ This is because of a namespace conflict between the standard
/usr/include/crypt.h header and the header files provided by OpenSSL. /usr/include/crypt.h header and the header files provided by OpenSSL.
Upgrading your OpenSSL installation to version 0.9.6a fixes this Upgrading your OpenSSL installation to version 0.9.6a fixes this
problem. Solaris 9 and above already newer version of OpenSSL. problem. Solaris 9 and above has a newer version of OpenSSL.
3) Why does configure complain about a failed test program? 3) Why does configure complain about a failed test program?
This is probably a case of the run-time linker being unable to find some This is probably a case of the run-time linker being unable to find
library. On solaris 8 and older it should be libz or some other some library, probably libz, libreadline or some other non-standard
non-standard library, such as libssl. To point it to the right library such as libssl. To point it to the right location, set the
location, set the LD_LIBRARY_PATH environment variable, e.g., LD_LIBRARY_PATH environment variable, e.g.,
LD_LIBRARY_PATH=/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib LD_LIBRARY_PATH=/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
@ -104,68 +105,58 @@ does not matter.)
Then build as usual. Then build as usual.
5) How can I compile for optimum performance? 5) How can I compile for optimal performance?
On SPARC architecture Sun Studio is strongly recommended for On the SPARC architecture, Sun Studio is strongly recommended for
compilation. Try using -xO5 optimalization flag to generate compilation. Try using the -xO5 optimization flag to generate
significantly faster binaries. Do not use any flags which modify significantly faster binaries. Do not use any flags that modify
behavior of floating point operations and errno processing (e.g. behavior of floating point operations and errno processing (e.g.,
-fast). These flags should raise some nonstandard PostgreSQL behavior -fast). These flags could raise some nonstandard PostgreSQL behavior
for example in the date/time computing. for example in the date/time computing.
If you do not reason to use 64-bit binaries on SPARC, prefer 32-bit If you do not have a reason to use 64-bit binaries on SPARC, prefer
version. The 64-bit operations are slower and 64-bit binaries are slower the 32-bit version. The 64-bit operations are slower and 64-bit
then 32-bits. And on other side a 32-bit code on the AMD64 CPU family is binaries are slower than the 32-bit variants. And on other hand,
not native and that is why 32-bit code is significant slower on this 32-bit code on the AMD64 CPU family is not native, and that is why
CPU family. 32-bit code is significant slower on this CPU family.
6) How to compile PostgreSQL with Sun Studio? 6) Where I can download prepared Solaris packages?
On Solaris 10 you can performed following steps: The PostgreSQL is bundled with Solaris 10 (from update 2). Official
packages are also available on
export CC=/opt/SUNWspro/bin/cc <http://pgfoundry.org/projects/solarispackages/>. Packages for older
export CFLAGS=-xO5 Solaris version (8, 9) you can be obtained from
export LDFLAGS=-lm <http://www.sunfreeware.com/> or <http://www.blastwave.org/>.
./configure --without-readline
gmake
7) Where I can download prepared Solaris packages? 7) How can I tune PostgreSQL and Solaris for performance?
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: Some tuning tricks can be found here:
http://www.sun.com/servers/coolthreads/tnb/applications_postgresql.jsp http://www.sun.com/servers/coolthreads/tnb/applications_postgresql.jsp
This article is primary focused on T2000 platform, however, many of This article is primary focused on T2000 platform, but many of the
recommendations are general for other hardware with Solaris. recommendations are also useful on other hardware with Solaris.
9) Can I use dtrace for tracing PostgreSQL? 8) Can I use DTrace for tracing PostgreSQL?
The PostgreSQL 8.2 has implemented dtrace support. You can enable it by 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 the --enable-dtrace configure switch. If you want to build 64-bit
code with dtrace you must specify DTRACEFLAGS='-64', e.g. binaries with DTrace you must specify DTRACEFLAGS='-64', e.g.,
Using gcc compiler: Using GCC compiler:
$ ./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ... $ ./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...
Using Sun compiler: Using Sun compiler:
$ configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64' $ ./configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64'
If you have some problem with postgres linking, looks like: If you see the linking of the postgres executable abort with an error
message like
Undefined first referenced Undefined first referenced
symbol in file symbol in file
@ -175,9 +166,9 @@ If you have some problem with postgres linking, looks like:
collect2: ld returned 1 exit status collect2: ld returned 1 exit status
gmake: *** [postgres] Error 1 gmake: *** [postgres] Error 1
check if you have Solaris 10u3 or newer installed on your box. You can your DTrace installation is too old to handle probes in static
also find more information here: functions. You need Solaris 10u3 or newer.
You can also find more information here:
http://blogs.sun.com/robertlor/entry/user_level_dtrace_probes_in http://blogs.sun.com/robertlor/entry/user_level_dtrace_probes_in