Re: [PORTS] ANNOUNCE: Patches for PostgreSQL 6.5.3 on SGI Irix 6.5

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Mark Dalphin <mdalphin(at)amgen(dot)com>
Cc: pgsql-ports(at)postgreSQL(dot)org
Subject: Re: [PORTS] ANNOUNCE: Patches for PostgreSQL 6.5.3 on SGI Irix 6.5
Date: 2000-03-02 02:01:17
Message-ID: 200003020201.VAA25785@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

Applied. Patch was wrapped but I fixed that. Makefile.shlib patch
already existed. Please test on 7.0 beta. There was some fuzz factor
in the patch apply.

> Hi,
>
> I suppose it is getting a bit late for this, now that postgreSQL 7.0 is in beta,
> but I have finally gotten all the patches together to make postgreSQL 6.5.3
> compile completely on an SGI Irix 6.5. This includes all the interfaces: JDBC,
> ODBC, libpq++, tcl, pgaccess, PL/pgsql, etc. As it turns out, all the patches
> are minor.
>
> So, here is my patch list:
> ============================================================================
> Patch for PostgreSQL 6.5.3 on SGI Irix 6.5.
> Submitted by Mark Dalphin, March 1, 2000.
>
> Generated by:
> diff -c -r postgresql-6.5.3/ postgresql-6.5.3.patched/ > irix_6.5.patch
>
> ======================================================================
> Discussion of PostgreSQL and its interfaces
>
> These patches are relatively minor in the overall source tree, but
> permit everything to compile, including libpq++, odbc, PL/pgsql, and
> tcl.
>
> There are no errors while running the regression tests except for
> error message words and some date problems in 1947.
>
> I can compile and run the libpq++ examples:
> cd .../src/interfaces/libpq++
> gmake examples
> cd examples
> ./testlibpq ...
> I have not tested this material carefully, however.
>
> I have not tested the tcl interface, however, pgaccess, which uses it,
> runs well.
>
> I use the perl DBI::DBD on a daily basis without any trouble. The
> libpq C library is used by these modules and, furthermore, I use it
> directly as well without any troubles.
>
> The ODBC library has been tested a little using the Data Access Builder
> from IBM's Visual Age for Java. It worked without any trouble after we
> got things configured at the PC end. No configuration was needed at the
> Irix end of the connection.
>
> The build of the JDBC code caused some trouble since it assumes the
> use of the GNU bash shell. I ended up building it following the commands
> in the Makefile, but was unable to get the automated build to work.
> After the JDBC interface was built, it has worked well for Java 1.1.6.
>
> The system is compiled with the native C compiler (/usr/bin/cc;
> MIPSpro Compilers: Version 7.30; /etc/compiler.defaults =
> -DEFAULT:abi=n32:isa=mips4:proc=r10k) and the native C++ compiler
> (/usr/bin/CC).
>
> Other packages installed include:
> flex version 2.5.4
> GNU Bison version 1.25
> GNU Make version 3.76.1
> install (GNU fileutils) 4.0
> GNU lib readline, ver 4.0
> tcl 8.0, tk 8.0 (this is a local install, not the SGI Freeware)
> perl 5.005_03
>
> The configure command is:
>
> ./configure \
> --with-CC=/usr/bin/cc \
> --with-CXX=/usr/bin/CC \
> --prefix=/usr/local/pgsql \
> --with-includes=/usr/local/include \
> --with-libraries=/usr/local/lib \
> --with-tcl \
> --with-tclconfig=/usr/local/lib \
> --with-tkconfig=/usr/local/lib \
> --with-perl \
> --with-odbc
>
> A description of the function of each patch is listed just above the patch.
> ======================================================================
>
> This patch makes it so that PostgreSQL can "find" the DSO (shared
> libraries) without using the environment variable, LD_LIBRARY_PATH.
>
> diff -c -r postgresql-6.5.3/src/Makefile.shlib
> postgresql-6.5.3.patched/src/Makefile.shlib
> *** postgresql-6.5.3/src/Makefile.shlib Thu Jul 29 21:13:44 1999
> --- postgresql-6.5.3.patched/src/Makefile.shlib Tue Feb 29 11:12:17 2000
> ***************
> *** 120,126 ****
> ifeq ($(PORTNAME), irix5)
> install-shlib-dep := install-shlib
> shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> ! LDFLAGS_SL := -shared
> CFLAGS += $(CFLAGS_SL)
> endif
>
> --- 120,126 ----
> ifeq ($(PORTNAME), irix5)
> install-shlib-dep := install-shlib
> shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
> ! LDFLAGS_SL := -shared -rpath $(LIBDIR)
> CFLAGS += $(CFLAGS_SL)
> endif
>
> ======================================================================
>
> This patch alters the Makefile options, removing GNU gcc options which
> choke the SGI C++ compiler. It is only a problem on the examples for
> libpq++.
>
> diff -c -r postgresql-6.5.3/src/interfaces/libpq++/examples/Makefile
> postgresql-6.5.3.patched/src/interfaces/libpq++/examples/Makefile
> *** postgresql-6.5.3/src/interfaces/libpq++/examples/Makefile Sat May 22
> 18:04:04 1999
> --- postgresql-6.5.3.patched/src/interfaces/libpq++/examples/Makefile Tue Feb
> 29 15:56:51 2000
> ***************
> *** 12,18 ****
> # inevitably get the warning, "abstract declarator used as declaration"
> # because of our inclusion of c.h and we don't know how to stop that.
>
> ! CXXFLAGS= $(CFLAGS) -Wno-error -Wno-unused -Wl,-Bdynamic
>
> INCLUDE_OPT= -I$(HEADERDIR)
>
> --- 12,19 ----
> # inevitably get the warning, "abstract declarator used as declaration"
> # because of our inclusion of c.h and we don't know how to stop that.
>
> ! #CXXFLAGS= $(CFLAGS) -Wno-error -Wno-unused -Wl,-Bdynamic
> ! CXXFLAGS= $(CFLAGS)
>
> INCLUDE_OPT= -I$(HEADERDIR)
>
> ======================================================================
>
> The next several patches all "repair" the same problem. The re-declaration
> of the variable 'i' as an 'int' in the second of two 'for' loops, causes
> an error for the SGI C++ compiler. It complains that 'i' is already in
> scope. This is only a problem in the example code.
>
> diff -c -r postgresql-6.5.3/src/interfaces/libpq++/examples/testlibpq1.cc
> postgresql-6.5.3.patched/src/interfaces/libpq++/examples/testlibpq1.cc
> *** postgresql-6.5.3/src/interfaces/libpq++/examples/testlibpq1.cc Sat May
> 22 18:04:05 1999
> --- postgresql-6.5.3.patched/src/interfaces/libpq++/examples/testlibpq1.cc
> Tue Feb 29 15:59:03 2000
> ***************
> *** 51,57 ****
> cout << endl << endl;
>
> // next, print out the instances
> ! for (int i=0; i < data.Tuples(); i++) {
> for (int j=0; j < nFields; j++)
> cout << setiosflags(ios::right) << setw(15) << data.GetValue(i,j);
>
> cout << endl;
> --- 51,57 ----
> cout << endl << endl;
>
> // next, print out the instances
> ! for (i=0; i < data.Tuples(); i++) {
> for (int j=0; j < nFields; j++)
> cout << setiosflags(ios::right) << setw(15) << data.GetValue(i,j);
>
> cout << endl;
>
> diff -c -r postgresql-6.5.3/src/interfaces/libpq++/examples/testlibpq2.cc
> postgresql-6.5.3.patched/src/interfaces/libpq++/examples/testlibpq2.cc
> *** postgresql-6.5.3/src/interfaces/libpq++/examples/testlibpq2.cc Sat May
> 22 18:04:05 1999
> --- postgresql-6.5.3.patched/src/interfaces/libpq++/examples/testlibpq2.cc
> Tue Feb 29 16:03:50 2000
> ***************
> *** 45,51 ****
> cout << endl << endl;
>
> // next, print out the instances
> ! for (int i=0; i < data.Tuples(); i++) {
> for (int j=0; j < nFields; j++)
> cout << setiosflags(ios::right) << setw(15) << data.GetValue(i,j);
>
> cout << endl;
> --- 45,51 ----
> cout << endl << endl;
>
> // next, print out the instances
> ! for ( i=0; i < data.Tuples(); i++) {
> for (int j=0; j < nFields; j++)
> cout << setiosflags(ios::right) << setw(15) << data.GetValue(i,j);
>
> cout << endl;
> diff -c -r postgresql-6.5.3/src/interfaces/libpq++/examples/testlibpq3.cc
> postgresql-6.5.3.patched/src/interfaces/libpq++/examples/testlibpq3.cc
> *** postgresql-6.5.3/src/interfaces/libpq++/examples/testlibpq3.cc Sat May
> 22 18:04:06 1999
> --- postgresql-6.5.3.patched/src/interfaces/libpq++/examples/testlibpq3.cc
> Tue Feb 29 16:04:41 2000
> ***************
> *** 48,54 ****
> cout << endl << endl;
>
> // next, print out the instances
> ! for (int i=0; i < cData.Tuples(); i++) {
> for (int j=0; j < nFields; j++)
> cout << setiosflags(ios::right) << setw(15) <<
> cData.GetValue(i,j);
> cout << endl;
> --- 48,54 ----
> cout << endl << endl;
>
> // next, print out the instances
> ! for ( i=0; i < cData.Tuples(); i++) {
> for (int j=0; j < nFields; j++)
> cout << setiosflags(ios::right) << setw(15) <<
> cData.GetValue(i,j);
> cout << endl;
>
> ======================================================================
>
> The next two patches add support for a new C++ concept, 'namespaces',
> to libpq++. The SGI C++ compiler uses namespaces by default and,
> while there is a way to turn off support for namespaces (option:
> -LANG:namespaces=OFF) this seems to mess up support for the Standard
> Template Library. It was easier to add the 'use namespaces std;' line
> to the libpq++ include files.
>
> diff -c -r postgresql-6.5.3/src/interfaces/libpq++/libpq++.H
> postgresql-6.5.3.patched/src/interfaces/libpq++/libpq++.H
> *** postgresql-6.5.3/src/interfaces/libpq++/libpq++.H Sat May 22 18:03:58 1999
>
> --- postgresql-6.5.3.patched/src/interfaces/libpq++/libpq++.H Tue Feb 29
> 15:40:31 2000
> ***************
> *** 32,37 ****
> --- 32,38 ----
>
> static char rcsid[] = "$Id: libpq++.H,v 1.4 1999/05/23 01:03:58 momjian Exp
> $";
>
> + using namespace std;
>
> // ****************************************************************
> //
> diff -c -r postgresql-6.5.3/src/interfaces/libpq++/pgconnection.h
> postgresql-6.5.3.patched/src/interfaces/libpq++/pgconnection.h
> *** postgresql-6.5.3/src/interfaces/libpq++/pgconnection.h Sat May 22
> 18:04:00 1999
> --- postgresql-6.5.3.patched/src/interfaces/libpq++/pgconnection.h Tue Feb
> 29 15:38:27 2000
> ***************
> *** 27,32 ****
> --- 27,33 ----
> #include "libpq-fe.h"
> }
>
> + using namespace std;
>
> // ****************************************************************
> //
>
> ======================================================================
>
> The odbc interface would not compile "out of the box" simply because
> the libraries were not correctly specified when linking. While the
> names of the libraries were listed, eg -lpq -lreadline, etc, the
> additional library locations, eg -L/usr/local/lib, had been lost.
> This change fixes that problem, though I am not certain that I have
> followed the correct PostgreSQL Makefile conventions here...
>
> diff -c -r postgresql-6.5.3/src/interfaces/odbc/GNUmakefile.in
> postgresql-6.5.3.patched/src/interfaces/odbc/GNUmakefile.in
> *** postgresql-6.5.3/src/interfaces/odbc/GNUmakefile.in Wed Jun 30 16:57:29 1999
>
> --- postgresql-6.5.3.patched/src/interfaces/odbc/GNUmakefile.in Tue Feb 29
> 12:29:13 2000
> ***************
> *** 37,43 ****
> pgtypes.o psqlodbc.o qresult.o results.o socket.o parse.o statement.o
> \
> gpps.o tuple.o tuplelist.o dlg_specific.o $(OBJX)
>
> ! SHLIB_LINK= $(LIBS)
>
> # Shared library stuff, also default 'all' target
> include $(SRCDIR)/Makefile.shlib
> --- 37,43 ----
> pgtypes.o psqlodbc.o qresult.o results.o socket.o parse.o statement.o
> \
> gpps.o tuple.o tuplelist.o dlg_specific.o $(OBJX)
>
> ! SHLIB_LINK= $(LD_FLAGS)
>
> # Shared library stuff, also default 'all' target
> include $(SRCDIR)/Makefile.shlib
>
> ======================================================================
>
> This patch is for convienence. I hate the large number of error
> messages which appear when PostgreSQL is built. This patch turns off
> certain common error messages. Note, this only applies to the SGI cc
> compiler when using the -n32 switch; the error message numbers change
> for the -o32 (aka -32) switch.
>
> diff -c -r postgresql-6.5.3/src/makefiles/Makefile.irix5
> postgresql-6.5.3.patched/src/makefiles/Makefile.irix5
> *** postgresql-6.5.3/src/makefiles/Makefile.irix5 Mon Mar 15 07:20:52 1999
>
> --- postgresql-6.5.3.patched/src/makefiles/Makefile.irix5 Tue Feb 29
> 17:22:14 2000
> ***************
> *** 6,10 ****
> %.so: %.o
> $(LD) -G -Bdynamic -shared -o $@ $<
>
> ! CFLAGS+= -U_NO_XOPEN4
> !
> --- 6,10 ----
> %.so: %.o
> $(LD) -G -Bdynamic -shared -o $@ $<
>
> ! CFLAGS+= -U_NO_XOPEN4 -woff 1164,1171,1185,1195,1552 -Wl,-woff,15 -Wl,-woff,84
>
> ! LDFLAGS+= -woff 15,84
>
> ======================================================================
> End of Irix patch file
>
>
> --
> Mark Dalphin email: mdalphin(at)amgen(dot)com
> Mail Stop: 29-2-A phone: +1-805-447-4951 (work)
> One Amgen Center Drive +1-805-375-0680 (home)
> Thousand Oaks, CA 91320 fax: +1-805-499-9955 (work)
>
>
>
>
> ************
>
>

--
Bruce Momjian | http://www.op.net/~candle
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Responses

Browse pgsql-ports by date

  From Date Subject
Next Message info 2000-03-02 11:11:17 Paper catalogues in HTML on the Internet
Previous Message Mark Dalphin 2000-03-02 00:03:53 ANNOUNCE: Patches for PostgreSQL 6.5.3 on SGI Irix 6.5