Commit 09b15764 authored by Peter Eisentraut's avatar Peter Eisentraut

Update platform FAQs

parent ed0b3f2d
=======================================================
Frequently Asked Questions (FAQ) for PostgreSQL V6.4.1
FreeBSD Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
last updated: Mon Dec 14 17:26:03 CET 1998
current maintainer: Pedro J. Lobo (pjlobo@euitt.upm.es)
original author: Pedro J. Lobo (pjlobo@euitt.upm.es)
This FAQ covers issues that are specific for PostgreSQL running on Digital
Unix (formerly known as DEC OSF/1). Please check the global FAQ for questions
not specific to this platform.
Changes in this version (* = modified, + = new, - = removed):
This file is divided approximately as follows:
1.*) Installing PostgreSQL
1.1.*) Compiling PostgreSQL
1.2.*) Running the regression tests
Questions answered:
1.1.1) I can't compile PostgreSQL with gcc.
1.1.2) DEC C dies with an internal error when optimization is
enabled (-O flag).
1.2.1) The regression tests fail for char, varchar, select_implicit,
select_having and rules.
1.2.2) The regression tests fail for abstime, tinterval and horology.
1.2.3) The regression tests fail for geometry.
1.2.4) The regression tests fail for inet.
----------------------------------------------------------------------
Section 1: Installing PostgreSQL
----------------------------------------------------------------------
Section 1.1: Compiling PostgreSQL
------------------------------------
1.1.1) I can't compile PostgreSQL with gcc.
Me too O:-) I tried to compile it with gcc 2.7.2.1 without
success. However, I've found that DEC C works much better than
gcc for alphas, and so I didn't make any effort to find out
why gcc fails. If you succedd on this task, please take the
time to update this section (see http://www.postgresql.org for
the details on how to do this).
1.1.2) The DEC C compiler dies with an internal error when optimization is
enabled (-O flag).
I've seen this happening on 3.2c and 3.2g systems, and only on
one of the source files (can't remember exactly which one).
The workaround was to compile the offending module without
optimization by hand, and re-running gmake to let the process
continue.
It doesn't happen on 4.0d systems (mine at least). Don't know
about earlier 4.0 versions.
Section 1.2: Running the regression tests
--------------------------------------------
1.2.1) The regression tests fail for char, varchar, select_implicit,
select_having and rules.
This only happens when you enable locale support, and is due
to a bug in the system's locale libraries. The problem is
that strcoll("Axxx", "axxx") returns a value greater than
zero instead of lower, which is how it should be.
This isn't a great problem unless you (or your application)
relies on upper-case letters being considered "smaller" than
lower-case for ordering purposes. Otherwise, you will only
notice that the ordering between upper-case and lower-case
letters is reversed.
1.2.2) The regression tests fail for abstime, tinterval and horology.
I think that these failures are due to some inconsistencies
in time zone handling in some years near 1950, in which case
the problem would be in the operating system's time zone
libraries. Recent dates seem to work as expected, but I can't
assure it.
1.2.3) The regression tests fail for geometry.
These are (small) rounding errors that shouldn't affect any
application (but could do, who knows).
1.2.4) The regression tests fail for inet.
Yes, they do. You must consider the inet type broken for
Digital Unix.
=======================================================
Frequently Asked Questions (FAQ) for PostgreSQL V6.2.1
FreeBSD Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
last updated: Tue Jan 06 22:26:00 EST 1998
current maintainer: Marc G. Fournier (scrappy@postgresql.org)
original author: Marc G. Fournier (scrappy@postgresql.org)
Changes in this version (* = modified, + = new, - = removed):
This file is divided approximately as follows:
1.*) Installing PostgreSQL
Questions answered:
1.1) Everything compiles fine. Attempts to run the regression
tests make the postmaster die with an illegal system call
error.
----------------------------------------------------------------------
Section 1: Installing PostgreSQL
----------------------------------------------------------------------
1.1) Everything compiles fine. Attempts to run the regression
tests make the postmaster die with an illegal system call
error.
You must reconfigure and install your kernel with the following
options enabled:
options SYSVSHM
options SYSVSEM
options SYSVMSG
=======================================================
Frequently Asked Questions (FAQ) for PostgreSQL V6.5
Frequently Asked Questions (FAQ) for PostgreSQL 7.1
HP-UX Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
last updated: Sun May 23 19:48:07 EDT 1999
last updated: $Date: 2000/08/26 19:34:24 $
current maintainer: Tom Lane (tgl@sss.pgh.pa.us)
original author: Tom Lane (tgl@sss.pgh.pa.us)
......@@ -55,36 +55,25 @@ than 6.4.
1.2) Anything special about the build/install procedure?
When you run configure, you will want to explicitly select either the
hpux_cc or hpux_gcc template depending on which compiler you plan to
use:
./configure --with-template=hpux_cc
If you have both HP's C compiler and GCC's, then you might want to
explicitly select the compiler to use when you run `configure':
CC=cc ./configure
for HP's C compiler, or
./configure --with-template=hpux_gcc
for GNU gcc. (If you omit --with-template, configure may either
default to hpux_cc or give up entirely, depending on which HPUX and
PostgreSQL releases you have.)
You may want to tweak the CFLAGS setting in template/hpux_[g]cc before
you configure. The distributed copy of hpux_cc contains neither -O nor -g
switches, which is hardly optimal for any situation. As of Postgres 6.5,
hpux_gcc sets CFLAGS to -O2, which is fine unless you want to do debugging;
in that case you may want -g as well (or instead).
CC=gcc ./configure
for GCC. If you omit this setting then configure will pick gcc.
The default install target location is /usr/local/pgsql, which
(particularly on HPUX 10) you might want to change to something under
/opt. If so, use the --prefix switch to configure.
If you have both HP and GNU C++ compilers in your PATH, keep an eye on
whether configure picks the right one --- you want the HP c++ if you are
using HP C, or g++ if you are using gcc. Mixing HP and GNU compilers
won't work. You may need to provide a --with-CXX=compiler switch to
force configure to pick the matching C++ compiler, or even say
--without-CXX if you have a C++ compiler but it doesn't match the C
compiler you want to use.
Otherwise the standard build/install procedure described in the
PostgreSQL documentation works fine.
If you want to build the C++ client library (libpq++) then you need
to use a C++ compiler from the same source as the C compiler; mixing
HP and GNU compilers doesn't work. If you have both C++ compilers
in your PATH, keep an eye on whether configure picks the right one.
To override the choice, set the environment variable CXX:
CC=gcc CXX=g++ ./configure
or
CC=cc CXX=aCC ./configure
1.3) yacc dies trying to process src/backend/parser/gram.y.
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL V7.0
SCO UnixWare and OpenServer Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
last updated: Mon May 1 23:35:43 EDT 2000
last updated: $Date: 2000/08/26 19:34:24 $
current maintainer: Billy G. Allie (Bill.Allie@mug.org)
original author: Andrew Merrill (andrew@compclass.com)
......@@ -22,8 +22,6 @@ Topics:
*) Readline
*) Using the UDK on OpenServer
*) Compiling PostgreSQL using the UDK
*) Shared Memory and SHMMAX
*) Java and JDBC
*) Reading the PostgreSQL man pages on UnixWare
......@@ -148,105 +146,6 @@ the following patch:
return result;
------------------------------8< CUT HERE >8------------------------------
***************************************************************************
*) Shared Memory and SHMMAX
PostgreSQL supports multiple backend daemons running at once. A block
of shared memory is used by the backend processes. A larger block
of shared memory allows PostgreSQL to run faster and support more
complicated queries.
By default, UnixWare 7 and OpenServer are confiugured to support shared memory
blocks that are no larger than 524288 bytes, or 512K. By default, PostgreSQL
tries to allocate a shared memory block that is larger than this. If
you don't do anything, this allocation will fail, and the postmaster
daemon will not be able to run.
The error message looks like this (the numbers may be different):
IpcMemoryCreate: shmget failed (Invalid argument) key=5432001, size=831176, permission=600
FATAL 1: ShmemCreate: cannot create region
You have two choices: tell PostgreSQL to allocate a smaller shared memory
block, or tell Unix to allow larger shared memory blocks. The latter
is the preferred solution, but it requires a kernel tunable change and a
reboot to implement.
To configure the size of the PostgreSQL shared memory block, use the -B
option to the postmaster command, which configures the number of buffers
used by PostgresSQL. (The shared memory block consists of these buffers
and around 300K of other stuff.) Each buffer uses 8K, and by default
there are 64 buffers, or 64*8*1024 = 524288 bytes (plus the ~300K of other
stuff).
To use PostgreSQL without doing any kernel tuning, use a -B value of
about 24. This would take up 24*8*1024 = 196608 bytes, plus ~300K
of other stuff, yields about 500000, which will fit in under the
default 512K limit.
Example: postmaster -B 24
The recommended option is to instead raise the kernel tunable SHMMAX,
which controls the size of the largest allowed shared memory block.
*** Tuning SHMMAX on UnixWare ***
To display the current value of SHMMAX, run:
/etc/conf/bin/idtune -g SHMMAX
which displays the current, default, minimum, and maximum values, in bytes.
To set a new value for SHMMAX, run:
/etc/conf/bin/idtune SHMMAX value
where value is the new value you want to use (in bytes).
After setting SHMMAX, rebuild the kernel and reboot.
To rebuild the kernel:
/etc/conf/bin/idbuild -B
*** Tuning SHMMAX on OpenServer ***
First, cd to /etc/conf/cf.d.
To display the current value of SHMMAX, in bytes, run:
./configure -y SHMMAX
To set a new value for SHMMAX, run:
./configure SHMMAX=value
where value is the new value you want to use (in bytes).
After setting SHMMAX, rebuild the kernel and reboot.
To rebuild the kernel:
./link_unix
***************************************************************************
*) Java and JDBC
The JDBC interface will not build on UnixWare or OpenServer without changes.
The JDBC Makefile in src/interfaces/jdbc/Makefile uses the $$( ) construction
to run an external shell command, instead of the older ` ` syntax.
However, the $$( ) syntax does not work on UnixWare or OpenServer.
So, each of the two uses of it must be replaced with backquotes. You can
search for $$( to locate the two lines that need changing.
In the file src/interfaces/jdbc/Makefile :
change:
make $$($(JAVA) makeVersion)
to:
make `$(JAVA) makeVersion`
and change:
$(JAR) -c0f $@ $$($(FIND) postgresql -name "*.class" -print)
to:
$(JAR) -c0f $@ `$(FIND) postgresql -name "*.class" -print`
Of course, you also need to have installed Java on your system, and
make sure that /usr/java/bin is in your PATH.
And, remember to use GNU make, as always.
***************************************************************************
*) Reading the PostgreSQL man pages on UnixWare
......
......@@ -3,24 +3,16 @@ Frequently Asked Questions (FAQ) for PostgreSQL V6.5
Sun Solaris Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
last updated: Thu Sep 21 9:30:00 CET 1999
last updated: $Date: 2000/08/26 19:34:24 $
current maintainer: Marc Liyanage (liyanage@access.ch)
original author: Marc Liyanage (liyanage@access.ch)
Contents:
1.1) What tools do I need to build and install PostgreSQL on Solaris?
1.2) What else do I have to do before building PostgreSQL?
1.3) Why am I getting "IpcMemoryCreate" errors when I try
to run postmaster?
1.4) Why am I getting "Can't tell what username to use" errors
when I try to run initdb?
A) Contributors
Notes:
......@@ -32,7 +24,6 @@ Notes:
- These instructions are written for Solaris 2.6
----------------------------------------------------------------------
Section 1: Building and Installing PostgreSQL
----------------------------------------------------------------------
......@@ -43,7 +34,7 @@ You will need
- GNU flex 2.5.4 or better (the lex included in Solaris 2.6 won't work)
- GNU bison (the yacc included in Solaris 2.6 won't work)
- GNU zip (gzip and especially zcat for installing the docs)
- GNU zip (gzip and especially gunzip for installing the docs)
- GNU make
- GNU readline library
......@@ -59,7 +50,6 @@ http://www.gnu.org/order/ftp.html
1.2) What else do I have to do before building PostgreSQL?
Shared libraries
......@@ -89,77 +79,3 @@ Do this:
There is some good information about this here:
http://www.visi.com/~barr/ldpath.html
zcat
----
If
- both the original solaris zcat as well as the recommended
GNU zcat are installed on the system (e.g. the former in /usr/bin and
the latter in /usr/local/bin) and
- configure (or "which zcat") finds the wrong one
then configure needs to be told where GNU zcat can be found.
Failure to do so will cause configure to select the wrong one
and the "gmake install" command in the "doc" subdirectory
(step 12 in the INSTALL file) will fail because Solaris
zcat cannot handle the .gz compressed documentation files.
To fix this, type
# export GZCAT=/usr/local/bin/zcat
(or wherever your GNU zcat lives)
before running configure.
1.3) Why am I getting "IpcMemoryCreate" errors when I try
to run the postmaster?
(See also 3.4 in the main FAQ file)
Under Solaris 2.6 and probably others, the default shared memory
maximum segment size kernel parameter is set too low. The solution
is to put something like the following line into /etc/system and
reboot the system.
set shmsys:shminfo_shmmax=0x7fffffff
Excellent info regarding shared memory under Solaris can be found here:
http://www.sunworld.com/swol-09-1997/swol-09-insidesolaris.html
1.4) Why am I getting "Can't tell what username to use" errors
when I try to run initdb?
Put something like this into the .bash_profile startup script
of the postgres user (see also step 17 in the INSTALL file):
export USER=postgres
----------------------------------------------------------------------
Section A: Contributors
----------------------------------------------------------------------
- Jose Luis Rodriguez Garcia
Suggested to change the shmmax parameter in 1.3 from 0xffffffff to 0x7fffffff
because the value is a signed integer in Solaris versions prior to 2.6.
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.19 2000/08/25 10:00:29 petere Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.20 2000/08/26 19:34:24 petere Exp $
-->
<Chapter Id="runtime">
......@@ -298,6 +298,13 @@ IpcSemaphoreCreate: semget(key=5440026, num=16, 01600) failed: No space left on
increase the kernel limit.
</para>
<para>
If you get an <quote>illegal system call</> error, then it is likely that
shared memory or semaphores are not supported at all in your kernel. In
that case your only option is to re-configure the kernel to turn on these
features.
</para>
<para>
Details about configuring System V IPC facilities are given in
<xref linkend="sysvipc">.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment