===================================================== Frequently Asked Questions (FAQ) for PostgreSQL V6.1 IRIX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ===================================================== 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.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 PostgreSQL 2.*) Uninstalling PostgreSQL 3.*) Extending PostgreSQL Questions answered: 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.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 PostgreSQL ---------------------------------------------------------------------- Section 1: Installing PostgreSQL ---------------------------------------------------------------------- 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 support). b) tcl/tk (if you wish to compile pgtclsh) 1.2) What changes do I need to make to src/Makefile.global or src/Makefile.custom? The easiest way to do this is to use the customize script in the src directory. You *must* set the following variables: PORTNAME= irix5 You will also need to change the following to match your own installation: POSTGRESDIR If you switch on the USE_TCL option, you will need to set these: TCL_INCDIR= TCL_LIBDIR= TCL_LIB = TK_INCDIR= TK_LIBDIR= TK_LIB = You may also make any other changes you need as documented in the INSTALL file and in Makefile.global 1.3) What are the references in X11_LIB to libsocket and libnsl in src/Makefile.global? This was a problem in 1.08 (they are Sun Solaris specific). It is fixed in 1.09 and above. 1.4) Are there any other changes I should make? If you have installed the GNU install program (ginstall), you should add the following line to src/Makefile.custom: 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.x? 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. 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 *************** *** 54,60 **** all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source postgres: $(OBJS) ../utils/version.o ! $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) $(OBJS): $(DIRS:%=%.dir) --- 54,64 ---- all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source postgres: $(OBJS) ../utils/version.o ! # $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) ! -rm -f *.o ! find . -name "*.o" -exec cp \{\} . \; ! rm -f SUBSYS.o ! $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) $(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 PostgreSQL ---------------------------------------------------------------------- 2.1) Why can't I move the executable files? By default, the IRIX port uses the BSD compatible version of install from /usr/bin/X11. If you read the man page for this version of install, you will see that it is not meant for end-user use; it has the interesting side-effect of chowning files it installs to root. You should still be able to delete the files as you (the postgres user) will own the directory in which they are stored. The normal IRIX install program cannot be used easily as it takes its arguments in the reverse order. It is therefore recommended to use the GNU version of install (ginstall). See Question 1.4 ---------------------------------------------------------------------- Section 3: Extending PostgreSQL ---------------------------------------------------------------------- 3.1) How do I compile a C program to create a function for extending PostgreSQL Here is a sample command line: cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend -shared -o funcs.so funcs.c ---------------------------------------------------------------------------- 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