============================================================ Frequently Asked Questions (FAQ) for PostgreSQL 7.3 SCO UnixWare and OpenServer specific to be read in conjunction with the installation instructions ============================================================ last updated: $Date: 2003/02/14 14:05:52 $ current maintainer: Billy G. Allie (Bill.Allie@mug.org) original author: Andrew Merrill (andrew@compclass.com) PostgreSQL 7.3 can be built on SCO UnixWare 7 and SCO OpenServer 5. On OpenServer, you can use either the OpenServer Development Kit or the Universal Development Kit. However, some tweaking may be needed, as described below. Topics: *) Skunkware *) GNU Make *) Readline *) Using the UDK on OpenServer *) Compiling PostgreSQL using the UDK *) Reading the PostgreSQL man pages *) C99 Issues with the 7.1.1b Feature Supplement *************************************************************************** *) Skunkware You should locate your copy of the SCO Skunkware CD. The Skunkware CD is included with UnixWare 7 and current versions of OpenServer 5. Skunkware includes ready-to-install versions of many popular programs that are available on the Internet. For example, gzip, gunzip, GNU make, flex, and bison are all included. If you do not have this CD, the software on it is available via anonymous ftp from ftp.sco.com/skunkware. For UnixWare 7.1, this CD is now labeled "Open License Software Supplement". Skunkware has different versions for UnixWare and OpenServer. Make sure you install the correct version for your operating system, except as noted below. *************************************************************************** *) GNU Make You need to use the GNU make program, which is on the Skunkware CD. By default, it installs as /usr/local/bin/make. To avoid confusion with the SCO make program, you may want to rename GNU make to gmake. *************************************************************************** *) Readline If you install the readline library, then psql (the PostgreSQL command line SQL interpreter) remembers each command you type, and allows you to use arrow keys to recall and edit previous commands. This is very helpful, and is strongly recommended. The readline library is on the Skunkware CD. The readline library is not included on the UnixWare 7.1 Skunkware CD. If you have the UnixWare 7.0.0 or 7.0.1 Skunkware CDs, you can install it from there. Otherwise, try ftp.sco.com/skunkware. By default, readline installs into /usr/local/lib and /usr/local/include. However, the PostgreSQL configure program will not find it there without help. If you installed readline, then use the following options to configure: configure --with-libs=/usr/local/lib --with-includes=/usr/local/include *************************************************************************** *) Using the UDK on OpenServer If you are using the new Universal Development Kit (UDK) compiler on OpenServer, you need to specify the locations of the UDK libraries: configure --with-libs=/udk/usr/lib --with-includes=/udk/usr/include Putting these together with the readline options from above: ./configure --with-libs="/udk/usr/lib /usr/local/lib" --with-includes="/udk/usr/include /usr/local/include" *************************************************************************** *) Compiling PostgreSQL 7.1 with the UDK The program, backend/utils/adt/int8.c, tickles a compiler bug with in the following versions (and probably others as well) of the C compiler: Optimizing C Compilation System (CCS) 3.2 08/18/98 Optimizing C Compilation System (CCS) 3.2 09/28/99 If you encounter an error compiling backend/utils/adt/int8.c, please apply the following patch: ------------------------------8< CUT HERE >8------------------------------ *** src/backend/utils/adt/int8.c.orig Sat Oct 7 20:48:17 2000 --- src/backend/utils/adt/int8.c Sat Oct 7 20:52:03 2000 *************** *** 489,495 **** if (arg1 < 1) result = 0; else ! for (i = arg1, result = 1; i > 0; --i) result *= i; PG_RETURN_INT64(result); --- 489,495 ---- if (arg1 < 1) result = 0; else ! for (i = arg1, result = 1; i; --i) result *= i; PG_RETURN_INT64(result); ------------------------------8< CUT HERE >8------------------------------ This compiler bug seems to be fixed at least in Optimizing C Compilation System (CCS) 4.0 10/23/00 (UDK FS 7.1.1b) *************************************************************************** *) Reading the PostgreSQL man pages By default, the PostgreSQL man pages are installed into /usr/local/pgsql/man. By default, UnixWare does not look there for man pages. To be able to read them you need to modify the MANPATH variable in /etc/default/man. I use: MANPATH=/usr/lib/scohelp/%L/man:/usr/dt/man:/usr/man:/usr/share/man:scohelp:/usr/local/man:/usr/local/pgsql/man On OpenServer, some extra research needs to be invested to make the man pages usable, because the man system is a bit different from other platforms. Currently, PostgreSQL will not install them at all. *************************************************************************** *) C99 Issues with the 7.1.1b Feature Supplement For compilers earlier than the one released with OpenUNIX 8.0.0(UnixWare 7.1.2), Including the 7.1.1b Feature Supplement, you may need to specify -Xb in CFLAGS or the CC environment variable. The indication of this is an error in compiling tuplesort.c referencing inline functions. Apparently there was a change in the 7.1.2(8.0.0) compiler and beyond.