OSDN Git Service

Install proper Irix FAQ.
authorBruce Momjian <bruce@momjian.us>
Tue, 8 Jun 1999 16:27:26 +0000 (16:27 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 8 Jun 1999 16:27:26 +0000 (16:27 +0000)
doc/FAQ_Irix

index 958a515..428f173 100644 (file)
 
-Documentation and FAQs
-     _________________________________________________________________
-   
-User
-
-     * Tutorial - for those not familiar with PostgreSQL
-     * User's Guide - general user information (download)
-     * Administrator's Guide - help in installing and managing PostgreSQL
-       (download)
-     * Programmer's Guide - for those programming in PostgreSQL, using
-       various interfaces (download)
-     * Integrated Document (includes others above) - for those
-       programming in PostgreSQL, using various interfaces (download)
-     * Appendices
-     * FAQ (Frequently Asked Questions)
-          + English
-          + Japanese
-          + Korean by Jung Jik Han
-     * Platform-specific FAQ's
-          + Linux
-               o English by Andrew Martin
-               o Japanese by Jun Kuwamura
-               o Korean by Jung Jik Han
-               o Italian by Daniele Medri
-          + Irix
-          + HP-UX
-     * HISTORY file showing changes in each release.
-     * TODO list showing our future plans.
-       
-Developers
-
-     * How PostgreSQL Processes a Query - a guide to all modules and
-       directories, including a flowchart
-     * Developer's FAQ
-          + English by Bruce Momjian
-          + Korean by Jung Jik Han
-     * Developer's Guide - for contributing to the PostgreSQL
-       distribution
-     * CVS/CVSUP FAQ access to source code
-     * History of PostgreSQL Development
+======================================================
+Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1
+IRIX Specific
+TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ
+======================================================
+last updated:           Mon Mar 05 17:00:00 GMT 1998
+
+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 ()
+
+*** ./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)
+
+
+1.7)    Why won't it link? (Problems with lorder)
+
+        According to the IRIX man pages, lorder is useless, but harmless
+        under IRIX. However, it has caused problems for some people
+        using both IRIX 6.2.
+
+        The solution is to add the following line to
+        .../src/makefiles/Makefile.irix5
+
+        MK_NO_LORDER=true
+
+
+1.8)    I have major problems with IRIX 6!
+
+        The following is quoted directly from Bob Bruccoleri
+
+There is a really nasty loader bug in the compiler system (7.1)
+on Irix 6.x, and the error that Lasse Petersen is the result of it.
+Here is the original message. I don't know if all the changes have been
+folded into the current release.
+
+Date: Fri, 06 Jun 1997 17:12:20 -0400 (EDT)
+From: bruc@bms.com (Robert Bruccoleri)
+Subject: [PORTS] Patches for Irix 6.4
+
+I have worked out how to compile PostgreSQL on Irix 6.4 using the -n32 compiler
+mode and version 7.1 of the C compiler. (The n32 compiler use 32 bits addressin
+g,
+but allows access to all the instructions in the MIPS4 instruction set.)
+There were several problems:
+
+1) The ld command is not referenced as a macro in all the Makefiles. On
+this platform, you have to include -n32 on all the ld commands. Makefiles
+were changed as needed.
+
+2) There is a bug in "ld" which mishandles the addresses of static procedures
+when object files are assembled into larger object files using "ld -r".
+Because of this, I put a hack into src/backend/Makefile to avoid all the
+SUBSYS.o files and just link all the objects. I have contacted SGI about the
+problem, and hopefully, it will be fixed in the near future.
+
+3) Lots of warnings are generated from the compiler. Since the regression
+tests worked OK, I didn't attempt to fix them. If anyone wants the compilation
+log, please let me know, and I'll email it to you.
+
+The version of postgresql was 970602. Here is Makefile.custom:
+
+CUSTOM_COPT = -O2 -n32
+MK_NO_LORDER = 1
+LD = ld -n32
+CC += -n32
+
+Here are the patches:
+
+*** ./backend/access/Makefile.orig      Sun Nov 10 00:00:15 1996
+- --- ./backend/access/Makefile Tue Jun  3 10:22:32 1997
+***************
+*** 8,13 ****
+- --- 8,16 ----
+  #
+  #-------------------------------------------------------------------------
+
++ SRCDIR = ../..
++ include ../../Makefile.global
++
+  OBJS = common/SUBSYS.o gist/SUBSYS.o hash/SUBSYS.o heap/SUBSYS.o \
+         index/SUBSYS.o rtree/SUBSYS.o nbtree/SUBSYS.o transam/SUBSYS.o
+
+
+*** ./backend/bootstrap/Makefile.orig   Fri Apr 18 06:00:23 1997
+- --- ./backend/bootstrap/Makefile      Tue Jun  3 10:23:59 1997
+***************
+*** 38,44 ****
+  all: SUBSYS.o
+
+  SUBSYS.o: $(OBJS)
+!       ld -r -o SUBSYS.o $(OBJS)
+
+  # bootstrap.o's dependency on bootstrap_tokens.h is computed by the
+  # make depend, but we state it here explicitly anyway because
+- --- 38,44 ----
+  all: SUBSYS.o
+
+  SUBSYS.o: $(OBJS)
+!       $(LD) -r -o SUBSYS.o $(OBJS)
+
+  # bootstrap.o's dependency on bootstrap_tokens.h is computed by the
+  # make depend, but we state it here explicitly anyway because
+
+*** ./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)
+
+***************
+*** 116,122 ****
+  install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\
+           global1.bki.source local1_template1.bki.source \
+           libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample
+!
+        $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres
+  ifeq ($(MAKE_EXPORTS), true)
+        $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
+- --- 120,126 ----
+  install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\
+           global1.bki.source local1_template1.bki.source \
+           libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample
+!
+        $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres
+  ifeq ($(MAKE_EXPORTS), true)
+        $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP)
+
+*** ./backend/optimizer/Makefile.orig   Wed Feb 19 12:00:34 1997
+- --- ./backend/optimizer/Makefile      Tue Jun  3 10:39:47 1997
+***************
+*** 8,13 ****
+- --- 8,16 ----
+  #
+  #-------------------------------------------------------------------------
+
++ SRCDIR= ../..
++ include ../../Makefile.global
++
+  all: submake SUBSYS.o
+
+  OBJS = path/SUBSYS.o plan/SUBSYS.o prep/SUBSYS.o util/SUBSYS.o geqo/SUBSYS.o
+
+*** ./backend/libpq/pqcomprim.c.orig    Mon May 26 00:00:23 1997
+- --- ./backend/libpq/pqcomprim.c       Fri Jun  6 16:02:24 1997
+***************
+*** 32,40 ****
+  #    define hton_l(n) (ntoh_l(n))
+  #  else       /* BYTE_ORDER != BIG_ENDIAN */
+  #    if BYTE_ORDER == PDP_ENDIAN
+! #      #error PDP_ENDIAN macros not written yet
+  #    else     /* BYTE_ORDER !=  anything known */
+! #      #error BYTE_ORDER not defined as anything understood
+  #    endif    /* BYTE_ORDER == PDP_ENDIAN */
+  #  endif      /* BYTE_ORDER == BIG_ENDIAN */
+  #endif                /* BYTE_ORDER == LITTLE_ENDIAN */
+- --- 32,40 ----
+  #    define hton_l(n) (ntoh_l(n))
+  #  else       /* BYTE_ORDER != BIG_ENDIAN */
+  #    if BYTE_ORDER == PDP_ENDIAN
+! #      error PDP_ENDIAN macros not written yet
+  #    else     /* BYTE_ORDER !=  anything known */
+! #      error BYTE_ORDER not defined as anything understood
+  #    endif    /* BYTE_ORDER == PDP_ENDIAN */
+  #  endif      /* BYTE_ORDER == BIG_ENDIAN */
+  #endif                /* BYTE_ORDER == LITTLE_ENDIAN */
+
+*** ./backend/storage/Makefile.orig     Sun Nov 10 00:01:06 1996
+- --- ./backend/storage/Makefile        Tue Jun  3 10:41:29 1997
+***************
+*** 8,13 ****
+- --- 8,16 ----
+  #
+  #-------------------------------------------------------------------------
+
++ SRCDIR= ../..
++ include ../../Makefile.global
++
+  all: submake SUBSYS.o
+
+  OBJS = buffer/SUBSYS.o file/SUBSYS.o ipc/SUBSYS.o large_object/SUBSYS.o \
+
+
+
+
+1.9)    Why does lex fail with PostgreSQL 6.2.1?
+
+        IRIX 5.3 lex has been reported to fail in
+        postgresql-6.2.1/src/backend/parser with the error:
+
+        lex scan.l
+        "scan.l":line 86: Error: Invalid request %x xc
+        gmake[2]: *** [scan.c] Error 1
+
+        The answer is to use GNU flex 2.5.4 or later. Use the command
+           flex --version
+        to check you have a new enough version of flex
+
+
+1.10)   How do I install PostgreSQL V6.3 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.
+
+        Depending on your Irix installation you may also encounter
+        2 other problems detailed below: Conflict in C standards,
+        Conflict in library functions.
+
+        a) Solving the ld bug
+        ---------------------
+
+        One option is to use the Gnu version of ld. Alternatively,
+        the following patch should be applied as a workaround.
+        (Supplied by Bob Bruccoleri  and modified for
+        PostgreSQL V6.3 by Lasse Hiller Petersen )
+
+        Apply the following patch:
+
+*** ./backend/Makefile.orig     Tue Mar  3 15:33:58 1998
+--- ./backend/Makefile  Tue Mar  3 15:39:27 1998
+***************
+*** 63,69 ****
+                                global1.description
+local1_template1.description
+
+  postgres: $(OBJS) ../utils/version.o
+!       $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS)
+
+  $(OBJS): $(DIRS:%=%.dir)
+
+--- 63,73 ----
+                                global1.description
+local1_template1.description
+
+  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)
+
+
+
+
+        Lasse configured with ./configure --enable-locale
+        and modified Makefile.custom to contain:
+CC = cc -n32
+LD = ld -n32
+
+        He reports that the installation without -n32 works fine too,
+        but the -n32 was required for compatibility with his Perl
+        installation. His system was an Origin200 running IRIX64 v6.4.
+
+
+        b) Conflict in C standards
+        --------------------------
+
+        I have found that the following patch is also necessary in order
+        to prevent a duplicate definition of a Union used for semaphores.
+        Apply the following patch to:
+        .../src/makefile/Makefile.irix5:
+
+*** src/makefiles/Makefile.irix5.orig   Thu Mar  5 16:59:58 1998
+--- src/makefiles/Makefile.irix5        Thu Mar  5 17:01:13 1998
+***************
+*** 6,9 ****
+  %.so: %.o
+        $(LD) -G -Bdynamic -shared -o $@ $<
+
+!
+--- 6,9 ----
+  %.so: %.o
+        $(LD) -G -Bdynamic -shared -o $@ $<
+
+! CFLAGS+= -U_NO_XOPEN4
+
+        i.e. the addition of the line:
+        CFLAGS+= -U_NO_XOPEN4
+
+        This is needed to stop the semun union being redefined in
+        /usr/include/sys/sem.h
+
+        c) Conflict in library functions
+        --------------------------------
+
+        In addition, if you have the nsl and crypt libraries these will
+        conflict with the required definitions. I think that libnsl.a
+        may be the Netware socket library (or something similar). In
+        any case, if you have these libraries, they will be added to
+        Makefile.global and you will need to remove them.
+
+        Thus, you should edit .../src/Makefile.global. Goto (approximately)
+        line 217 where LDFLAGS= is set and remove -lnsl and -lcrypt
+        from this line.
+
+
+----------------------------------------------------------------------
+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