aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/dfunc.sgml19
-rw-r--r--doc/src/sgml/installation.sgml121
-rw-r--r--doc/src/sgml/runtime.sgml23
3 files changed, 2 insertions, 161 deletions
diff --git a/doc/src/sgml/dfunc.sgml b/doc/src/sgml/dfunc.sgml
index 554f9fac4ce..b94aefcd0ca 100644
--- a/doc/src/sgml/dfunc.sgml
+++ b/doc/src/sgml/dfunc.sgml
@@ -202,23 +202,4 @@ gcc -G -o foo.so foo.o
server expects to find the shared library files.
</para>
-<!--
-Under AIX, object files are compiled normally but building the shared
-library requires a couple of steps. First, create the object file:
-.nf
-cc <other flags> -c foo.c
-.fi
-You must then create a symbol \*(lqexports\*(rq file for the object
-file:
-.nf
-mkldexport foo.o `pwd` &gt; foo.exp
-.fi
-Finally, you can create the shared library:
-.nf
-ld <other flags> -H512 -T512 -o foo.so -e _nostart \e
- -bI:.../lib/postgres.exp -bE:foo.exp foo.o \e
- -lm -lc 2>/dev/null
-.fi
- -->
-
</sect2>
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index ed5b285a5ee..a453f804cd6 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -3401,7 +3401,7 @@ export MANPATH
<para>
<productname>PostgreSQL</productname> can be expected to work on current
versions of these operating systems: Linux, Windows,
- FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, macOS, AIX, Solaris, and illumos.
+ FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, macOS, Solaris, and illumos.
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
@@ -3422,7 +3422,7 @@ export MANPATH
<para>
Historical versions of <productname>PostgreSQL</productname> or POSTGRES
also ran on CPU architectures including Alpha, Itanium, M32R, M68K,
- M88K, NS32K, SuperH, and VAX, and operating systems including 4.3BSD, BEOS,
+ M88K, NS32K, SuperH, and VAX, and operating systems including 4.3BSD, AIX, BEOS,
BSD/OS, DG/UX, Dynix, HP-UX, IRIX, NeXTSTEP, QNX, SCO, SINIX, Sprite, SunOS,
Tru64 UNIX, and ULTRIX.
</para>
@@ -3445,123 +3445,6 @@ export MANPATH
installation issues.
</para>
- <sect2 id="installation-notes-aix">
- <title>AIX</title>
-
- <indexterm zone="installation-notes-aix">
- <primary>AIX</primary>
- <secondary>installation on</secondary>
- </indexterm>
-
- <para>
- You can use GCC or the native IBM compiler <command>xlc</command>
- to build <productname>PostgreSQL</productname>
- on <productname>AIX</productname>.
- </para>
-
- <para>
- <productname>AIX</productname> versions before 7.1 are no longer
- tested nor supported by the <productname>PostgreSQL</productname>
- community.
- </para>
-
- <sect3 id="installation-notes-aix-mem-management">
- <title>Memory Management</title>
- <!-- https://archives.postgresql.org/message-id/603bgqmpl9.fsf@dba2.int.libertyrms.com -->
-
- <para>
- AIX can be somewhat peculiar with regards to the way it does
- memory management. You can have a server with many multiples of
- gigabytes of RAM free, but still get out of memory or address
- space errors when running applications. One example
- is loading of extensions failing with unusual errors.
- For example, running as the owner of the PostgreSQL installation:
-<screen>
-=# CREATE EXTENSION plperl;
-ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": A memory address is not in the address space for the process.
-</screen>
- Running as a non-owner in the group possessing the PostgreSQL
- installation:
-<screen>
-=# CREATE EXTENSION plperl;
-ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": Bad address
-</screen>
- Another example is out of memory errors in the PostgreSQL server
- logs, with every memory allocation near or greater than 256 MB
- failing.
- </para>
-
- <para>
- The overall cause of all these problems is the default bittedness
- and memory model used by the server process. By default, all
- binaries built on AIX are 32-bit. This does not depend upon
- hardware type or kernel in use. These 32-bit processes are
- limited to 4 GB of memory laid out in 256 MB segments using one
- of a few models. The default allows for less than 256 MB in the
- heap as it shares a single segment with the stack.
- </para>
-
- <para>
- In the case of the <literal>plperl</literal> example, above,
- check your umask and the permissions of the binaries in your
- PostgreSQL installation. The binaries involved in that example
- were 32-bit and installed as mode 750 instead of 755. Due to the
- permissions being set in this fashion, only the owner or a member
- of the possessing group can load the library. Since it isn't
- world-readable, the loader places the object into the process'
- heap instead of the shared library segments where it would
- otherwise be placed.
- </para>
-
- <para>
- The <quote>ideal</quote> solution for this is to use a 64-bit
- build of PostgreSQL, but that is not always practical, because
- systems with 32-bit processors can build, but not run, 64-bit
- binaries.
- </para>
-
- <para>
- If a 32-bit binary is desired, set <symbol>LDR_CNTRL</symbol> to
- <literal>MAXDATA=0x<replaceable>n</replaceable>0000000</literal>,
- where 1 &lt;= n &lt;= 8, before starting the PostgreSQL server,
- and try different values and <filename>postgresql.conf</filename>
- settings to find a configuration that works satisfactorily. This
- use of <symbol>LDR_CNTRL</symbol> tells AIX that you want the
- server to have <symbol>MAXDATA</symbol> bytes set aside for the
- heap, allocated in 256 MB segments. When you find a workable
- configuration,
- <command>ldedit</command> can be used to modify the binaries so
- that they default to using the desired heap size. PostgreSQL can
- also be rebuilt, passing <literal>configure
- LDFLAGS="-Wl,-bmaxdata:0x<replaceable>n</replaceable>0000000"</literal>
- to achieve the same effect.
- </para>
-
- <para>
- For a 64-bit build, set <envar>OBJECT_MODE</envar> to 64 and
- pass <literal>CC="gcc -maix64"</literal>
- and <literal>LDFLAGS="-Wl,-bbigtoc"</literal>
- to <command>configure</command>. (Options for
- <command>xlc</command> might differ.) If you omit the export of
- <envar>OBJECT_MODE</envar>, your build may fail with linker errors. When
- <envar>OBJECT_MODE</envar> is set, it tells AIX's build utilities
- such as <command>ar</command>, <command>as</command>, and <command>ld</command> what
- type of objects to default to handling.
- </para>
-
- <para>
- By default, overcommit of paging space can happen. While we have
- not seen this occur, AIX will kill processes when it runs out of
- memory and the overcommit is accessed. The closest to this that
- we have seen is fork failing because the system decided that
- there was not enough memory for another process. Like many other
- parts of AIX, the paging space allocation method and
- out-of-memory kill is configurable on a system- or process-wide
- basis if this becomes a problem.
- </para>
- </sect3>
- </sect2>
-
<sect2 id="installation-notes-cygwin">
<title>Cygwin</title>
diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index 64753d9c014..6047b8171d4 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -892,29 +892,6 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such
<variablelist>
<varlistentry>
- <term><systemitem class="osname">AIX</systemitem>
- <indexterm><primary>AIX</primary><secondary>IPC configuration</secondary></indexterm>
- </term>
- <listitem>
- <para>
- It should not be necessary to do
- any special configuration for such parameters as
- <varname>SHMMAX</varname>, as it appears this is configured to
- allow all memory to be used as shared memory. That is the
- sort of configuration commonly used for other databases such
- as <application>DB/2</application>.</para>
-
- <para> It might, however, be necessary to modify the global
- <command>ulimit</command> information in
- <filename>/etc/security/limits</filename>, as the default hard
- limits for file sizes (<varname>fsize</varname>) and numbers of
- files (<varname>nofiles</varname>) might be too low.
- </para>
- </listitem>
- </varlistentry>
-
-
- <varlistentry>
<term><systemitem class="osname">FreeBSD</systemitem>
<indexterm><primary>FreeBSD</primary><secondary>IPC configuration</secondary></indexterm>
</term>