Index: doc/src/sgml/installation.sgml =================================================================== RCS file: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v retrieving revision 1.313 diff -u -3 -p -r1.313 installation.sgml --- doc/src/sgml/installation.sgml 5 Sep 2008 12:11:18 -0000 1.313 +++ doc/src/sgml/installation.sgml 18 Nov 2008 10:18:03 -0000 @@ -2001,8 +2001,9 @@ kill `cat /usr/local/pgsql/data/postmast FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix, and UnixWare. Other Unix-like systems may also work but are not currently being tested. In most cases, all CPU architectures supported by - a given operating system will work. Look in the doc/ - directory of the source distribution to see if there is a FAQ document + a given operating system will work. Look in + the below to see if + there is information specific to your operating system, particularly if using an older system. @@ -2011,9 +2012,202 @@ kill `cat /usr/local/pgsql/data/postmast to be supported according to recent build farm results, please report it to pgsql-bugs@postgresql.org. If you are interested in porting PostgreSQL to a new platform, - pgsql-ports@postgresql.org is the appropriate place + pgsql-hackers@postgresql.org is the appropriate place to discuss that. + + Platform-Specific Notes + + + Solaris + + + Required tools + + + To build and install PostgreSQL on Solaris, you will need + + gzip (for installing the documentation) + GNU Make + GNU Readline library (optional) + Sun Studio CC or GCC + + + You can download Sun Studio + from . + Many of GNU tools are integrated into 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 + at + or . If you prefer + sources, look + at . + + + + You can build with either GCC or Sun's compiler suite. For + better code optimization, 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. + + + + + Problems with OpenSSL + + + 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 + + + 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. Solaris 9 and above has a newer version of OpenSSL. + + + + + configure complains about a failed test program + + + If configure complains about a failed test program, this is + probably a case of the run-time linker being unable to find some + library, probably libz, libreadline or some other non-standard + library such as libssl. To point it to the right location, set + the LDFLAGS environment variable, e.g., + +LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib" +export LDFLAGS + + and restart configure. See + the ld1 + man page for more information. + + + + + 64-bit build sometimes crashes + + + 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: + In src/Makefile.global, change the line + +LIBOBJS = + + to read + +LIBOBJS = snprintf.o + + (There might be other files already listed in this variable. + Order does not matter.) Then build as usual. + + + + + Compiling for optimal performance + + + On the SPARC architecture, Sun Studio is strongly recommended for + compilation. Try using the optimization + flag to generate significantly faster binaries. Do not use any + flags that modify behavior of floating-point operations + and errno processing (e.g., + ). These flags could raise some + nonstandard PostgreSQL behavior for example in the date/time + computing. + + + + If you do not have a reason to use 64-bit binaries on SPARC, + prefer the 32-bit version. The 64-bit operations are slower and + 64-bit binaries are slower than the 32-bit variants. And on + other hand, 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. + + + + + Solaris packages + + + PostgreSQL is bundled with Solaris 10 (from update 2). Official + packages are also available on + . + Packages for older Solaris versions (8, 9) you can be obtained + from or + . + + + + + Performance tuning + + + Some tricks for tuning PostgreSQL and Solaris for performance can + be found + at . + This article is primary focused on T2000 platform, but many of + the recommendations are also useful on other hardware with + Solaris. + + + + + Using DTrace for tracing PostgreSQL + + + Yes, using DTrace is possible. See + for further information. You can also find more information in + this + article: . + + + + If you see the linking of the postgres executable abort with an + error message 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 + + your DTrace installation is too old to handle probes in static + functions. You need Solaris 10u4 or newer. A workaround is to + remove the + static key word from the function declarations + of AbortTransaction + and CommitTransaction + in src/backend/access/transam/xact.c. See + also + (registration required). + + + + +