summaryrefslogtreecommitdiff
path: root/doc/FAQ_HPUX
diff options
context:
space:
mode:
authorBruce Momjian1999-06-05 18:24:55 +0000
committerBruce Momjian1999-06-05 18:24:55 +0000
commit3fd4755ee3f36d7bcfe8de7ba8202bc2b271e0c5 (patch)
treebc9fe5ca475f7b9cc2206e266852ee794ca9d397 /doc/FAQ_HPUX
parente7253d893c20e449eb6234546e7002a09da61daa (diff)
Update faq and hpux faq.
Diffstat (limited to 'doc/FAQ_HPUX')
-rw-r--r--doc/FAQ_HPUX132
1 files changed, 68 insertions, 64 deletions
diff --git a/doc/FAQ_HPUX b/doc/FAQ_HPUX
index 4789c65e1d..369b23b623 100644
--- a/doc/FAQ_HPUX
+++ b/doc/FAQ_HPUX
@@ -1,40 +1,37 @@
-
+<PRE>
=======================================================
-Frequently Asked Questions (FAQ) for PostgreSQL V6.4
+Frequently Asked Questions (FAQ) for PostgreSQL V6.5
HP-UX Specific
TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
=======================================================
-last updated: Sat Nov 28 16:21:25 EST 1998
+last updated: Sun May 23 19:48:07 EDT 1999
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) yacc dies trying to process src/backend/parser/gram.y.
-1.4) Linking the main postgres executable fails, complaining that
- there's no "alloca" function.
-1.5) OK, it seemed to build and install, but the regression test fails.
+1.1) What do I need to install PostgreSQL on HP-UX?
+1.2) Anything special about the build/install procedure?
+1.3) yacc dies trying to process src/backend/parser/gram.y.
+1.4) Linking the main postgres executable fails, complaining that
+ there's no "alloca" function.
+1.5) 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?
+1.1) What do I need to install PostgreSQL on HP-UX?
-PostgreSQL 6.4 is known to build and pass regression test on HPUX 9.03,
+PostgreSQL 6.5 is known to build and pass regression test on HPUX 9.03,
9.05, and 10.20, given appropriate system patch levels and build tools.
It should work on other HPUX 9.* and 10.* releases for Series 700/800
-machines, too. (No one has reported trying it with HPUX 11 yet.)
-Since this is a new FAQ, I don't yet have a lot of information about the
-exact prerequisites, but I'd appreciate hearing from anyone who fails to
-build a working copy, so that we can add more info about exactly what is
-needed.
+machines, too. I have heard nonspecific reports of problems on HPUX 11;
+more info and/or patches would be appreciated!
-Aside from PostgreSQL 6.4 or later sources, you will need GNU make
+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.
You must also get flex (GNU lex) 2.5.4 or later --- all versions of
HP's lex fail on the Postgres lexer files.
@@ -43,9 +40,12 @@ I'd also recommend making sure you are fairly up-to-date on HP patches,
particularly if you are using HPUX 9. At a minimum, if you are on HPUX 9,
you *must* have PHSS_4630 (libm update) or a successor patch; otherwise
Postgres' date/time functions will misbehave. 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 (but I don't currently know of
-any specific failures due to not having recent patches for these files).
+should be current on libc and ld/dld patches, as well as compiler patches
+if you are using HP's C compiler. (The only other presently known failure
+from out-of-date system libraries is that on HPUX 10.10, the backend will
+crash after the second error message in a session unless you have upgraded
+libc to PHCO_16722 or later.)
+
See HP's support websites, such as http://us-support.external.hp.com/,
for free copies of their latest patches.
@@ -54,22 +54,23 @@ install on HPUX, so I recommend you not bother with anything older
than 6.4.
-1.2) Anything special about the build/install procedure?
+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
+ ./configure --with-template=hpux_cc
for HP's C compiler, or
- ./configure --with-template=hpux_gcc
+ ./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 files contain neither -O nor -g switches,
-which is hardly optimal for any situation. I've seen no problems using
--O with gcc 2.7.2.*.
+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).
The default install target location is /usr/local/pgsql, which
(particularly on HPUX 10) you might want to change to something under
@@ -87,7 +88,7 @@ Otherwise the standard build/install procedure described in the
PostgreSQL documentation works fine.
-1.3) yacc dies trying to process src/backend/parser/gram.y.
+1.3) yacc dies trying to process src/backend/parser/gram.y.
HP's yacc doesn't create its tables large enough to handle the Postgres
grammar (a lot of other vendors' yaccs have this problem too). There
@@ -98,33 +99,37 @@ and src/backend/parser/parse.h and repeat the build. Any PostgreSQL
distribution file should have up-to-date copies of those files included,
so you shouldn't need to run yacc on gram.y at all ... but sometimes
gram.y mistakenly has a newer timestamp in the distribution than the
-derived files do.
-
-2. Install "bison" (GNU yacc) and reconfigure. Bison doesn't have a
-problem with large grammars. Note this is not the right choice if you
-are using HP's cc on HPUX 9 --- see next item.
+derived files do. (If you fetched the PostgreSQL sources from the CVS
+server, then you won't have these files anyway; see next choices.)
-3. Increase yacc's table sizes enough to cope. With a pre-6.4
+2. Increase yacc's table sizes enough to cope. With a pre-6.4
PostgreSQL grammar, I was able to get HPUX 9's yacc to work by
setting YFLAGS to
- -d -Np2000 -Ns3000 -Nm100000 -Nl2000 -Na30000 -Nc10000
+ -d -Np2000 -Ns3000 -Nm100000 -Nl2000 -Na30000 -Nc10000
(You can edit YFLAGS either in the template file before running
configure, or in src/Makefile.global afterwards.) Future PostgreSQL
releases might require even larger tables, but this should do for
a starting point.
+3. Install "bison" (GNU yacc) and reconfigure. Bison doesn't have a
+problem with large grammars. Note this is not the right choice if you
+are using HP's cc on HPUX 9 --- see next item.
+
-1.4) Linking the main postgres executable fails, complaining that
- there's no "alloca" function.
+1.4) Linking the main postgres executable fails, complaining that
+ there's no "alloca" function.
-If you're using HP's cc on HPUX 9, it's right: there's no alloca
-function. The only place in PostgreSQL that uses alloca is the parser
-(gram.c), and that does so only if it was generated with GNU bison.
-Unfortunately the distribution copy of gram.c is made with bison.
-There are several possible answers:
+If you're using HP's cc on HPUX 9, it's right: there's no alloca function.
+The only places in PostgreSQL that use alloca are the parser files, and
+those do so only if they were generated with GNU bison. Unfortunately the
+prebuilt copies of gram.c and preproc.c are made with bison. There are
+several possible answers:
- 1. Remake gram.c with HP's yacc (see above item for switch settings).
- You might also need to remake src/backend/bootstrap/bootparse.c.
+ 1. Remake the files with HP's yacc: configure to use yacc with the
+ above-mentioned switch settings, and remove these files before
+ starting the build:
+ src/backend/parser/gram.c
+ src/interfaces/ecpg/preproc/preproc.c
2. Build with gcc, which treats alloca as a compiled-in-line function.
@@ -132,7 +137,7 @@ There are several possible answers:
before Y2K anyway...
-1.5) OK, it seemed to build and install, but the regression test fails.
+1.5) 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.
@@ -140,32 +145,31 @@ A look at the textual differences between the expected and actual
outputs will usually reveal that the differences are minor. You should
expect these differences:
-TEST(S) COMMENTS
+TEST(S) COMMENTS
-int2, int4: pg_atoi generates a differently worded error
- message for integer overflow.
+int2, int4: pg_atoi generates a differently worded error
+ message for integer overflow.
-float8: In 6.4, float8 shows some differences due to
- different handling of overflow/underflow errors in
- exp() and pow(). This should be fixed in 6.4.1
- and later.
+float8, geometry: Lots of differences in the last digit or two
+ because of different roundoff errors in floating
+ arithmetic. Also, HPUX does not distinguish
+ -0 from 0 during printout, but the reference
+ platform does.
-float8, geometry: Lots of differences in the last digit or two
- because of different roundoff errors in floating
- arithmetic. Also, HPUX does not distinguish
- -0 from 0 during printout, but the reference
- platform does.
+float8: In 6.4, float8 shows some differences due to
+ different handling of overflow/underflow errors in
+ exp() and pow(). This is fixed in 6.4.1 and later.
-horology: HPUX time library does not know about daylight
- savings time before 1970, so there are some
- places in horology where a time will be shown
- in PST instead of PDT.
+horology: HPUX time library does not know about daylight
+ savings time before 1970, so there are some
+ places in horology where a time will be shown
+ in PST instead of PDT.
-In addition, the int8 regression test will fail massively on HPUX 9,
-because int8 doesn't actually work on this platform (sprintf/sscanf
-don't cope with long long int). Either upgrade to HPUX 10, or don't
-use int8 data.
+The int8 regression test will fail massively on HPUX 9 with Postgres 6.4,
+because sprintf/sscanf don't cope with long long int. This is fixed in
+Postgres 6.5 by not depending on the system versions of those routines.
Any other error is cause for suspicion. In particular, if you see
failures in the datetime test on HPUX 9, you probably forgot to
install the libm patch PHSS_4630 --- see item 1.1 above.
+</PRE>