Re: [PORTS] ANNOUNCE: Patches for PostgreSQL 6.5.3 on SGI Irix 6.5 - Mailing list pgsql-ports
From | Bruce Momjian |
---|---|
Subject | Re: [PORTS] ANNOUNCE: Patches for PostgreSQL 6.5.3 on SGI Irix 6.5 |
Date | |
Msg-id | 200003020201.VAA25785@candle.pha.pa.us Whole thread Raw |
In response to | ANNOUNCE: Patches for PostgreSQL 6.5.3 on SGI Irix 6.5 (Mark Dalphin <mdalphin@amgen.com>) |
List | 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@amgen.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@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
pgsql-ports by date: