======================================================= Frequently Asked Questions (FAQ) for PostgreSQL IRIX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= last updated: $Date: 2006/12/05 14:47:34 $ current maintainer: Billy G. Allie (Bill.Allie@mug.org) original author: Andrew Merrill (andrew@compclass.com) Consult http://buildfarm.postgresql.org/ for latest information. PostgreSQL 8.0 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 *) --enable-thread-safety and UnixWare *) float4/float8 regression failures on NaN and inf I/O. *************************************************************************** *) 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. Note: on UnixWare 7.1.3 and beyond, the GCC compiler is included on the UDK CD as is GNUMake. *************************************************************************** *) 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. As of UnixWare 7.1.3 and above, the GNU Make program is is the OSTK portion of the UDK CD, and is in /usr/gnu/bin/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. *************************************************************************** *) --enable-thread-safety and UnixWare If you use the --enable-thread-safety configure flag, you *MUST* use -Kpthread on ALL libpq using programs. libpq uses pthread_* calls, which are only available with the -Kpthread/-Kthread flag. *************************************************************************** *) float4/float8 regression failures on NaN and inf I/O. You will see regression failures for the float4 and float8 regression tests on the NaN and inf I/O functions. This is due to a bug in SCO's strtod library function on BOTH UnixWare and OpenServer. It's slated to be fixed in the first maintenance / update for UnixWare 7.1.4, and probably the next MP/UP for OpenServer 5.0.7 (I'm not sure on the OSR side as of the time I'm writing this (2004-05-14). You might also see Join test failures due to ordering differences, and these are ok.