From 4c4f11896a4e8eaad9d144b33435da0a479f8e86 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 3 Oct 1997 15:38:31 +0000 Subject: [PATCH] Update machine-specific FAQs. Too late. --- doc/{FAQ-Irix => FAQ_Irix} | 63 +++++--- doc/{FAQ-Linux => FAQ_Linux} | 284 +++++++++++++++++++++++++++++------ 2 files changed, 285 insertions(+), 62 deletions(-) rename doc/{FAQ-Irix => FAQ_Irix} (72%) rename doc/{FAQ-Linux => FAQ_Linux} (57%) diff --git a/doc/FAQ-Irix b/doc/FAQ_Irix similarity index 72% rename from doc/FAQ-Irix rename to doc/FAQ_Irix index 9dbc95f3fa..56026fe47b 100644 --- a/doc/FAQ-Irix +++ b/doc/FAQ_Irix @@ -1,45 +1,49 @@ ===================================================== -Frequently Asked Questions (FAQ) for PostgresSQL V6.1 +Frequently Asked Questions (FAQ) for PostgreSQL V6.1 IRIX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ===================================================== -last updated: Fri Jun 13 09:54:00 BST 1997 +last updated: Fri Sep 19 11:51:00 BST 1997 current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) Changes in this version (* = modified, + = new, - = removed): -+1.5) Can I install PostgreSQL under Irix 6.4? ++1.6) The make fails with the following message: + ld32: ERROR 4: Conflicting flag setting: -call_shared This file is divided approximately as follows: -1.*) Installing Postgres95 -2.*) Uninstalling Postgres95 -3.*) Extending Postgres95 +1.*) Installing PostgreSQL +2.*) Uninstalling PostgreSQL +3.*) Extending PostgreSQL Questions answered: -1.1) What extra items do I need to install Postgres95 under Irix? +1.1) What extra items do I need to install PostgreSQL under Irix? 1.2) What changes do I need to make to src/Makefile.global? 1.3) What are the references in X11_LIB to libsocket and libnsl in src/Makefile.global? 1.4) Are there any other changes I should make? -1.5) Can I install PostgreSQL under Irix 6.4? +1.5) Can I install PostgreSQL under Irix 6.x? +1.6) The make fails with the following message: + ld32: ERROR 4: Conflicting flag setting: -call_shared 2.1) Why can't I move the executable files? 3.1) How do I compile a C program to create a function for extending - Postgres95 + PostgreSQL ---------------------------------------------------------------------- -Section 1: Installing Postgres95 +Section 1: Installing PostgreSQL ---------------------------------------------------------------------- -1.1) What extra items do I need to install Postgres95 under Irix? +1.1) What extra items do I need to install PostgreSQL under Irix? You *must* have the following installed: a) Gnu make (installed as gmake) You are recommended to install the following: a) GNU install (installed as ginstall) + (This is part of the GNU fileutils package) You may choose to install the following: a) GNU readline library (if you wish psql to have readline @@ -83,15 +87,19 @@ Section 1: Installing Postgres95 CUSTOM_INSTALL=ginstall For an explanation as to why this is a good idea, see Question 2.1 + Ginstall is part of the GNU fileutils package. -1.5) Can I install PostgreSQL under Irix 6.4? +1.5) Can I install PostgreSQL under Irix 6.x? - Irix 6.4 has a bug in ld which mishandles the addresses of + Irix 6.2-6.4 has a bug in ld which mishandles the addresses of static procedures when object files are assembled into larger object files using 'ld -r'. This bug has been reported - to Silicon Graphics. The following patch should be applied as - a workaround. (Supplied by Bob Bruccoleri ) + to Silicon Graphics. + + One option is to use the Gnu version of ld. Alternatively, + the following patch should be applied as a workaround. + (Supplied by Bob Bruccoleri ) *** ./backend/Makefile.orig Thu May 22 00:00:15 1997 --- ./backend/Makefile Thu Jun 5 16:47:27 1997 @@ -117,8 +125,25 @@ Section 1: Installing Postgres95 $(OBJS): $(DIRS:%=%.dir) + + +1.6) The make fails with the following message: + ld32: ERROR 4: Conflicting flag setting: -call_shared + + If gmake fails in .../src/backend while building obj/ACCESS.o + with a message from ld32, you can work around this by using + ld for the LD environment variable rather than cc. + + The problem has been observed under Irix 5.3 when compiling both + Postgres95-1.09 and PostgreSQL-6.2Beta6, but on some systems + these appear to compile with no such problems. + + Fix supplied by Brian Sanders (bsanders@netcom.com, + brian@fresnelsoft.com) + + ---------------------------------------------------------------------- -Section 2: Deinstalling Postgres95 +Section 2: Deinstalling PostgreSQL ---------------------------------------------------------------------- 2.1) Why can't I move the executable files? @@ -140,14 +165,14 @@ Section 2: Deinstalling Postgres95 ---------------------------------------------------------------------- -Section 3: Extending Postgres95 +Section 3: Extending PostgreSQL ---------------------------------------------------------------------- 3.1) How do I compile a C program to create a function for extending - Postgres95 + PostgreSQL Here is a sample command line: - cc -I/usr/local/postgres95/include/ -I/usr/local/postgres95/src/backend + cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend -shared -o funcs.so funcs.c diff --git a/doc/FAQ-Linux b/doc/FAQ_Linux similarity index 57% rename from doc/FAQ-Linux rename to doc/FAQ_Linux index 1d0f91f473..7a37b77166 100644 --- a/doc/FAQ-Linux +++ b/doc/FAQ_Linux @@ -1,31 +1,18 @@ -===================================================== -Frequently Asked Questions (FAQ) for PostgresSQL V6.0 +======================================================= +Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1 Linux Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ -===================================================== -last updated: Wed Jan 29 20:16:00 GMT 1997 +======================================================= +last updated: Wed Oct 01 11:45:00 BST 1997 current maintainer: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) original author: Andrew C.R. Martin (martin@biochem.ucl.ac.uk) Changes in this version (* = modified, + = new, - = removed): -*1.1) What changes do I need to make to src/Makefile.global or - src/Makefile.custom? -*1.2) Why do I get problems with missing libreadline? -*1.6) GCC complains about an ignored option -fpic -*1.7) I get warnings of the form - warning: cast from pointer to integer of different size -*1.8) [SuSE-Linux 4.2] Where is curses and termcap? -*1.11) How do I compile PostgreSQL on an a.out system? -*1.12) Why does make fail with: - yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y - make: /usr/bin/make: cannot execute binary file -*1.14) [DEBIAN] Where is libtermcap? -*2.1) The linker fails to find libX11 when compiling pgtclsh -+3.6) Why does psql fail with: - psql: can't load library 'libpq.so.1' --4.*) Spurious problems + ++3.9) Why does Query 32 in the regression tests take so long? + This file is divided approximately as follows: 1.*) Installing PostgreSQL @@ -35,7 +22,7 @@ This file is divided approximately as follows: Questions answered: 1.1) What changes do I need to make to src/Makefile.global or - src/Makefile.custom? + src/Makefile.custom and are there any other changes needed? 1.2) Why do I get problems with missing libreadline? 1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? 1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? @@ -44,7 +31,7 @@ Questions answered: 1.6) GCC complains about an ignored option -fpic 1.7) I get warnings of the form warning: cast from pointer to integer of different size -1.8) [SuSE-Linux 4.2] Where is curses and termcap? +1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap? 1.9) Why do I get problems with ld.so? 1.10) Why do I get `yy_flush_buffer undefined' errors? 1.11) How do I compile PostgreSQL on an a.out system? @@ -54,6 +41,16 @@ Questions answered: 1.13) What are the references in X11_LIB to libsocket and libnsl in src/Makefile.global? 1.14) [DEBIAN] Where is libtermcap? +1.15) [REDHAT] Can I get PostgreSQL as an RPM? +1.16) While trying to compile a development version under Linux, compilation + fails with a message like: + In file included from /usr/include/sys/sem.h:8, + from ipc.c:37: + /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit' + .... + make: *** [ipc.o] Error 1 +1.17) When compiling postgres, gcc reports signal 11 and aborts. +1.18) Can I install 6.1.1 under MkLinux? 2.1) The linker fails to find libX11 when compiling pgtclsh 3.1) I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when running scripts like createuser @@ -72,20 +69,28 @@ Questions answered: failed: Invalid argument 3.6) Why does psql fail with: psql: can't load library 'libpq.so.1' -4.1) Why doesn't the postmaster start the first time? +3.7) Other strange behaviour +3.8) When PostgreSQL is running when the system is shutdown, Linux + always fsck's the disk when rebooted. +3.9) Why does Query 32 in the regression tests take so long? ---------------------------------------------------------------------- Section 1: Compiling PostgreSQL ---------------------------------------------------------------------- 1.1) What changes do I need to make to src/Makefile.global or - src/Makefile.custom? + src/Makefile.custom and are there any other changes needed? - These changes are most easily made by running the customize - shell script in the src directory which will write a + Changes to the makefiles are most easily made by running the + customize shell script in the src directory which will write a Makefile.custom for you. - If you do it by hand, you *must* set the following variable: + The only other change you may have to make is to replace + Flex if you have version 2.5.3 which has a bug which generally + manifests itself as createuser failing (See Question 3.4) + + If you modify the makefiles by hand, you *must* set the + following variable: PORTNAME= linux You will also need to change the following to match your own @@ -130,6 +135,10 @@ Section 1: Compiling PostgreSQL 1.3) [REDHAT] Why do I get problems with missing libdl and dlfcn.h? + This manifests itself as being unable to link with functions + such as dlopen(), dlclose(), etc. during the last phase of the + compilation. + The libdl library is used for dynamic linking of user-supplied functions at run-time. For some reason this library was missed out from the Redhat distribution. It seems that the latest Redhat 4.0 @@ -164,6 +173,10 @@ Section 1: Compiling PostgreSQL 1.4) [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? + This manifests itself as being unable to link with functions + such as dlopen(), dlclose(), etc. during the last phase of the + compilation. + See the answer to question 1.3. Slackware up to version 3.0 was supplied with this library and include file and they seem to be back in again in the latest versions of 3.1, but the early 3.1 @@ -236,26 +249,41 @@ Section 1: Compiling PostgreSQL except those related to system header files (which can also be safely ignored). -1.8) [SuSE-Linux 4.2] Where is curses and termcap? +1.8) [SuSE-Linux 4.2-4.4] Where is curses and termcap? - SuSE-Linux has ncurses but not curses. Set the value of CURSES_LIB - in src/Makefile.custom to -lncurses (or do this through the - customize script). + SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both. + SuSE-Linux also has the termcap library is in /usr/lib/termcap + instead of in /usr/lib. - SuSE-Linux has the termcap library is in /usr/lib/termcap instead of - in /usr/lib. If you have a problem, you need to add the following - line to src/Makefile.custom: + PostgreSQL (up to V6.0) + ----------------------- + Set the value of CURSES_LIB in src/Makefile.custom to -lncurses + (or do this through the customize script). + Add the following line to src/Makefile.custom: LDADD_BE+= -L/usr/lib/termcap - You may need to edit src/bin/psql/Makefile and comment out the - change: - ifeq ($(PORTNAME), linux) - LD_ADD+= -ltermcap - to: + You may need to edit src/bin/psql/Makefile and change: ifeq ($(PORTNAME), linux) LD_ADD+= + to: + ifeq ($(PORTNAME), linux) + LD_ADD+= -ltermcap + PostgreSQL (V6.1) + ----------------- + The configure script doesn't know to look in /usr/lib/termcap for + the termcap library, so you should specify this as one of the + library directories when asked for additional directories to + search. + + If this doesn't work (I don't have SuSE to verify that it does) + then after running configure, you need to edit + src/Makefile.global and add -ltermcap to the LDFLAGS line + (after -lreadline). + + You may also wish to force use of ncurses rather than curses by + changing -lcurses to -lncurses. 1.9) Why do I get problems with ld.so? @@ -282,6 +310,7 @@ Section 1: Compiling PostgreSQL First, you must install the dld library. This may be obtained from Sunsite as: Linux/libs/dld.3.2.7.tar.gz + (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz) Second, add the following line to src/Makefile.custom: LINUX_ELF= @@ -327,6 +356,57 @@ Section 1: Compiling PostgreSQL LD_ADD+= +1.15) [REDHAT] Can I get PostgreSQL as an RPM? + + Yes! Michal Mosiewicz + (http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM + for PostgreSQL V6.0 on Intel architectures which he has uploaded to + ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm + + This is a pre-compiled version, the source RPM is on its + was as I write (3rd Feb 1997). + +1.16) While trying to compile a development version under Linux, compilation + fails with a message like: + In file included from /usr/include/sys/sem.h:8, + from ipc.c:37: + /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit' + .... + make: *** [ipc.o] Error 1 + + The problem is that Linux provides no prototypes for these + inline functions. The solution is to go into the + .../src/backend/storage/ipc directory and edit the Makefile. + Change the line + CFLAGS+=$(INCLUDE_OPT) + to + CFLAGS+=$(INCLUDE_OPT) -Wno-error + + Do the same in the ../src/backend/storage/lmgr directory. + +1.17) When compiling postgres, gcc reports signal 11 and aborts. + More specifically: + gcc: Internal compiler error: program cc1 got fatal + signal 11 + + This may be a hardware/memory problem. PortgreSQL is a big + program, and large gcc compilations (such as building + PostgreSQL or bebuilding the kernel) stress memory like + few other programs, resulting in errors that do not occur + in normal operation. Lesser operating systems are also + unlikely to stress the hardware to this degree so you + may never see any problems under DOS/Windows. + + More information on this problem at: + http://www.bitwizard.nl/sig11 + +1.18) Can I install 6.1.1 under MkLinux? + + Tatsuo Ishii has done this under + MkLinux DR2.1 update2 after a small patch available from: + ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz + + ---------------------------------------------------------------------- Section 2: Compiling accessory programs ---------------------------------------------------------------------- @@ -375,9 +455,10 @@ Section 3: Runtime Problems 3.4) Why doesn't createuser work? There is a problem with Version 2.5.3 of GNU flex and createuser. - Your options are to downgrade flex to V2.5.2, apply a patch to - V2.5.3 (supplied in doc/README.flex) or wait for V2.5.4 which - will fix the bug. + Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4 + or apply a patch to V2.5.3 which is supplied in doc/README.flex + You may obtain V2.5.4 from + ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz 3.5) Why do I get an error like: IpcMemoryCreate: memKey=155356396 , size=760632 , @@ -398,5 +479,122 @@ Section 3: Runtime Problems Add a single line at the end which gives the name of the PostgreSQL library directory (the lib subdirectory of your PostgreSQL installation) and run - /sbin/ldconfig + /sbin/ldconfig -v + Alternatively, (and if you don't have root access), you may + use the LD_LIBRARY_PATH environment variable. + + The LD_LIBRARY_PATH variable contains a colon separated list of + paths to be searched for shared libraries. This list is + searched before the libraries specified by ldconfig. + + Therefore under Bash, you would do something like: + export LD_LIBRARY_PATH='PathToPGSQL'/lib + or, using tcsh + setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib + replacing 'PathToPGSQL' with the appropriate path to your top level + PostgreSQL directory + + Note that the ldd command can be used on a dynamically linked + executable to list the paths to all the shared libraries upon + which the executable depends. + + +3.7) Other strange behaviour + + I'm not sure what the symptoms might be except for nothing + working properly, but it has been pointed out that one needs + to be careful that the dynamic loader loads the correct version + of the libpq library. If you have old versions lying around + in your library path (for example in /usr/lib) these may get + loaded instead of the new version you intended to load. Make + sure you get them out of the way and look at Q3.6 for + details of loading libraries. + +3.8) When PostgreSQL is running when the system is shutdown, Linux + always fsck's the disk when rebooted. + + There have been some reports of this happening and it seems + to be a result of running PostgreSQL from /etc/inittab as + suggested in the INSTALL document. + + You are therefore recommended to start the postmaster from an + rc script. Under a Slackware-like release, you would modify + /etc/rc.d/rc.local to start the postmaster. Under a RedHat-like + release you should create a SysV style script in + /etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file. + + There's a sample file in contrib/linux/postgres.init + + Here's another sample file supplied by John Robinson + which you should modify as needed: + +#!/bin/sh +# +# postgreSQL.init This shell script takes care of starting and stopping +# the PostgreSQL postmaster. +# + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "no" ] && exit 0 + +# See how we were called. +case "$1" in + start) + # Start daemons. + echo -n "Starting postgres Postmaster daemon:" + if [ -z "`pidofproc postmaster`" ] + then + su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgreSQL/data -p 5432 &" + echo -n " postmaster" + else + echo -n " (already running)" + fi + echo + touch /var/lock/subsys/postgres + ;; + stop) + # Stop daemons. + echo -n "Shutting down postgres Postmaster daemon: " + killall -TERM postmaster 2>/dev/null + killall -TERM postgres 2>/dev/null + echo + rm -f /var/lock/subsys/postgres + ;; + *) + echo "Usage: postgres {start|stop}" + exit 1 +esac + +exit 0 + + + +3.9) Why does Query 32 in the regression tests take so long? + + This is due to a bug in regression scripts which only happens + on linux boxes. There are two workarounds as far as I know + (information from Tatsuo Ishii ): + + 1. change following in regress.sh: + time postgres -texecutor -tplanner -Q bench < bench.sql + to: + postgres -texecutor -tplanner -Q bench < bench.sql + + 2. after running the test, remove a line at the very end of + bench.out something like: + 85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k + then type: + sh ./perquery < bench.out > & bench.out.perquery + +---------------------------------------------------------------------------- +Dr. Andrew C.R. Martin University College London +EMAIL: (Work) martin@biochem.ucl.ac.uk (Home) andrew@stagleys.demon.co.uk +URL: http://www.biochem.ucl.ac.uk/~martin +Tel: (Work) +44(0)171 419 3890 (Home) +44(0)1372 275775