=======================================================
Frequently Asked Questions (FAQ) for PostgreSQL 7.3
HP-UX Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
last updated:           $Date: 2004/09/02 17:46:24 $

current maintainer:     Tom Lane (tgl@sss.pgh.pa.us)
original author:        Tom Lane (tgl@sss.pgh.pa.us)


Questions covered here:
1.1)	What do I need to install PostgreSQL on HP-UX?
1.2)	Anything special about the build/install procedure?
1.3)	OK, it seemed to build and install, but the regression test fails.


----------------------------------------------------------------------
Section 1:      Installing PostgreSQL
----------------------------------------------------------------------

1.1)	What do I need to install PostgreSQL on HP-UX?

PostgreSQL 7.3 should work on Series 700/800 PA-RISC machines running
HP-UX 10.X or 11.X, given appropriate system patch levels and build
tools.  At least one developer routinely tests on HPUX 10.20 and we
have reports of successful installations on HPUX 11.00 and 11.11.

Aside from the PostgreSQL source distribution, you will need GNU make
(HP's make will not do), and either GNU gcc or HP's full ANSI C compiler.
If you intend to build from CVS sources rather than a distribution tarball,
you will also need flex (GNU lex) and bison (GNU yacc).

I'd also recommend making sure you are fairly up-to-date on HP
patches.  At a minimum, if you are building 64 bit binaries on on HPUX
11.11 you may need PHSS_30966 (11.11) or a successor patch otherwise
initdb may hang:

    PHSS_30966  s700_800 ld(1) and linker tools cumulative patch

On general principles you should be current on libc and ld/dld
patches, as well as compiler patches if you are using HP's C compiler.
See HP's support sites such as http://itrc.hp.com and
ftp://us-ffs.external.hp.com/ for free copies of their latest patches.

If you are building on a PA-RISC 2.0 machine and want to have 64-bit
binaries using GCC, you must use GCC 64-bit version. GCC binaries for
HP-UX PA-RISC and Itanium are available from http://www.hp.com/go/gcc.
Don't forget to get and install binutils at the same time.

If you are building on a HP-UX Itanium machine, you will need the
latest HP ANSI C compiler with its dependent patch or successor
patches:

    PHSS_30848  s700_800 HP C Compiler (A.05.57)
    PHSS_30849  s700_800 u2comp/be/plugin library Patch

1.2)	Anything special about the build/install procedure?

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':
	./configure CC=cc
for HP's C compiler, or
	./configure CC=gcc
for GCC.  If you omit this setting, then configure will pick gcc
if it has a choice.

The default install target location is /usr/local/pgsql, which
you might want to change to something under /opt.  If so, use
the --prefix switch to configure.

If you are building on a PA-RISC 2.0 machine and want the compiled
binaries to run on PA-RISC 1.1 machines you will need to specify
+DAportable in CFLAGS.


1.3)	OK, it seemed to build and install, but the regression test fails.

There are several "expected failures" due to differences between HPUX
and the regression test reference platform used by the PostgreSQL
group.  All of these should be compensated for by the regression test
comparison mechanism, with the possible exception of some
low-order-digit differences in the geometry tests, which vary depending
on which compiler and math library versions you use.

Any other error is cause for suspicion.

The parallel regression test script (gmake check) is known to lock up
on PA-RISC when run under HP's Bourne shells: /usr/bin/sh and
/sbin/sh. To fix this problem, you will need PHCO_30269 with its
dependent patch or successor patches:

    PHCO_30269  s700_800 cumulative sh-posix(1) patch
    PHCO_29816  s700_800 rc(1M) scripts cumulative patch 

To work around this problem, use ksh to run the regression script:

	gmake SHELL=/bin/ksh check

If you see that the tests have stopped making progress and only a shell
process is consuming CPU, kill the shell process and start over with the
above command.
