Peter Eisentraut wrote:
I have new things to add, specially for Open Solaris plattaform
specifications. I can write a new FAQ or just concatenate to this the other
features of OSolaris?
In my opinion, the platform FAQs should be scrapped and the information should
be placed into the real documentation at the appropriate places.
Here is a beginning patch of what I am planning to do with the platform
FAQs in terms of getting it integrated into the main documentation. If
you don't like where this is going, please speak up.
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 <filename>doc/</>
- directory of the source distribution to see if there is a FAQ document
+ a given operating system will work. Look in
+ the <xref linkend="installation-platform-notes"> below to see if
+ there is information
specific to your operating system, particularly if using an older system.
</para>
@@ -2011,9 +2012,202 @@ kill `cat /usr/local/pgsql/data/postmast
to be supported according to recent build farm results, please report
it to <email>[EMAIL PROTECTED]</email>. If you are interested
in porting <productname>PostgreSQL</> to a new platform,
- <email>[EMAIL PROTECTED]</email> is the appropriate place
+ <email>[EMAIL PROTECTED]</email> is the appropriate place
to discuss that.
</para>
</sect1>
+ <sect1 id="installation-platform-notes">
+ <title>Platform-Specific Notes</title>
+
+ <sect2 id="installation-notes-solaris">
+ <title>Solaris</title>
+
+ <sect3>
+ <title>Required tools</title>
+
+ <para>
+ To build and install PostgreSQL on Solaris, you will need
+ <itemizedlist>
+ <listitem><para>gzip (for installing the documentation)</para></listitem>
+ <listitem><para>GNU Make</para></listitem>
+ <listitem><para>GNU Readline library (optional)</para></listitem>
+ <listitem><para>Sun Studio CC or GCC</para></listitem>
+ </itemizedlist>
+
+ You can download Sun Studio
+ from <ulink url="http://developers.sun.com/sunstudio/downloads/"></ulink>.
+ 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 <ulink url="http://www.sunfreeware.com"></ulink>
+ or <ulink url="http://www.blastwave.org"></ulink>. If you prefer
+ sources, look
+ at <ulink url="http://www.gnu.org/order/ftp.html"></ulink>.
+ </para>
+
+ <para>
+ 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
+ <filename>/usr/ucb/cc</filename>;
+ use <filename>/opt/SUNWspro/bin/cc</filename>.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>Problems with OpenSSL</title>
+
+ <para>
+ When you build PostgreSQL with OpenSSL support you might get
+ compilation errors in the following files:
+ <itemizedlist>
+
<listitem><para><filename>src/backend/libpq/crypt.c</filename></para></listitem>
+
<listitem><para><filename>src/backend/libpq/password.c</filename></para></listitem>
+
<listitem><para><filename>src/interfaces/libpq/fe-auth.c</filename></para></listitem>
+
<listitem><para><filename>src/interfaces/libpq/fe-connect.c</filename></para></listitem>
+ </itemizedlist>
+
+ This is because of a namespace conflict between the standard
+ <filename>/usr/include/crypt.h</filename> header and the header
+ files provided by OpenSSL.
+ </para>
+
+ <para>
+ Upgrading your OpenSSL installation to version 0.9.6a fixes this
+ problem. Solaris 9 and above has a newer version of OpenSSL.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>configure complains about a failed test program</title>
+
+ <para>
+ 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 <envar>LDFLAGS</envar> environment variable, e.g.,
+<programlisting>
+LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib"
+export LDFLAGS
+</programlisting>
+ and restart configure. See
+ the <citerefentry><refentrytitle>ld</><manvolnum>1</></citerefentry>
+ man page for more information.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>64-bit build sometimes crashes</title>
+
+ <para>
+ On Solaris 7 and older, the 64-bit version of libc has a buggy
+ <function>vsnprintf</function> 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 <command>configure</command> edit a file produced by
+ <command>configure</command>:
+ In <filename>src/Makefile.global</filename>, change the line
+<programlisting>
+LIBOBJS =
+</programlisting>
+ to read
+<programlisting>
+LIBOBJS = snprintf.o
+</programlisting>
+ (There might be other files already listed in this variable.
+ Order does not matter.) Then build as usual.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>Compiling for optimal performance</title>
+
+ <para>
+ On the SPARC architecture, Sun Studio is strongly recommended for
+ compilation. Try using the <option>-xO5</option> optimization
+ flag to generate significantly faster binaries. Do not use any
+ flags that modify behavior of floating-point operations
+ and <varname>errno</varname> processing (e.g.,
+ <option>-fast</option>). These flags could raise some
+ nonstandard PostgreSQL behavior for example in the date/time
+ computing.
+ </para>
+
+ <para>
+ 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.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>Solaris packages</title>
+
+ <para>
+ PostgreSQL is bundled with Solaris 10 (from update 2). Official
+ packages are also available on
+ <ulink url="http://pgfoundry.org/projects/solarispackages/"></ulink>.
+ Packages for older Solaris versions (8, 9) you can be obtained
+ from <ulink url="http://www.sunfreeware.com/"></ulink> or
+ <ulink url="http://www.blastwave.org/"></ulink>.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>Performance tuning</title>
+
+ <para>
+ Some tricks for tuning PostgreSQL and Solaris for performance can
+ be found
+ at <ulink
url="http://www.sun.com/servers/coolthreads/tnb/applications_postgresql.jsp"></ulink>.
+ This article is primary focused on T2000 platform, but many of
+ the recommendations are also useful on other hardware with
+ Solaris.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>Using DTrace for tracing PostgreSQL</title>
+
+ <para>
+ Yes, using DTrace is possible. See <xref linkend="monitoring">
+ for further information. You can also find more information in
+ this
+ article: <ulink
url="http://blogs.sun.com/robertlor/entry/user_level_dtrace_probes_in"></ulink>.
+ </para>
+
+ <para>
+ If you see the linking of the postgres executable abort with an
+ error message like
+<screen>
+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
+</screen>
+ your DTrace installation is too old to handle probes in static
+ functions. You need Solaris 10u4 or newer. A workaround is to
+ remove the
+ <literal>static</literal> key word from the function declarations
+ of <function>AbortTransaction</function>
+ and <function>CommitTransaction</function>
+ in <filename>src/backend/access/transam/xact.c</filename>. See
+ also <ulink
url="http://sunsolve.sun.com/search/document.do?assetkey=1-1-2139224-1"></ulink>
+ (registration required).
+ </para>
+ </sect3>
+ </sect2>
+ </sect1>
+
</chapter>
--
Sent via pgsql-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs