11PostgresSQL on QNX 4
22--------------------
3+ last updated: $Date: 2001/05/24 15:53:31 $
4+
5+ current maintainer: Bernd Tegge (tegge@repas-aeg.de)
6+ original author: Andreas Kardos (kardos@repas-aeg.de)
37
48This port is an important step because PostgreSQL is now the only free
59relational database with full SQL and ODBC support available for QNX 4.
610The only commercial databases available are Empress RDBMS and Velocis
711Database Server (not supported for Digital Unix).
812
913The most effort required the emulation of System V semaphore sets,
10- shared memory and IPC and of some IEEE floating-point functionality. For
11- the Watcom compiler spinlocks have been implemented using POSIX semaphores.
14+ shared memory and IPC and of some IEEE floating-point functionality.
1215
13- It is recomended to use the GNU C compiler instead of the Watcom compiler
16+ It is recommended to use the GNU C compiler instead of the Watcom compiler
1417because the Watcom compiler doesn't support a int8 datatype (long or
15- long long int) and it does not have a C++ frontend.
16- It could be managed to build postgres using the Watcom compiler but it crashes
17- quite early. These problems probably could be solved. The only advantage would
18- be support of Tk and pgaccess. For the Watcom compiler some more modifications
19- have to be made which are not described here.
18+ long long int) and it does not have a C++ frontend. The only advantage
19+ using Watcom C would be support of Tk and pgaccess.
2020
2121QNX 4 does not offer native support of shared libraries. Therefore the related
2222functionality cannot be used. Shared library support could probably be
2323implemented in future.
2424
25- QNX 4 does not support UNIX domain sockets. Connections can only be made
26- with TCP/IP sockets. Therefore postmaster must always be started with the
27- -i option. Furthermore it would be useful to set the PGHOST variable.
25+ QNX 4 does not support UNIX domain sockets. Clients must use TCP/IP sockets.
26+ Therefore postmaster must always be started with the -i option. Furthermore
27+ it would be useful to set the PGHOST variable.
2828
2929Prerequisites:
3030--------------
3131
3232The following prerequisites have been used:
3333
34- QNX 4.25
35- Watcom C 10.6
36- GNU make
34+ QNX standard:
35+ QNX 4.25, Watcom C 10.6, GNU make
36+
37+ Available from http://www.teaser.fr/~jcmichot/
3738flex-2.5.4a.tar.gz (flex)
38- egcs111-qnx4-r20.tar[.gz] (GNU C)
39+ egcs-112-qnx4-r20.tar[.gz] (GNU C)
40+
41+ Available from ftp://ftp.visi.com/users/hawkeyd/qnx/
42+ bison-1.2.5.tar.gz
43+
44+ Available from http://quics.qnx.com/cgi-bin/dir_find.cgi?/usr/free/
3945perl 5.004_04
46+
47+ from ftp://ftp.freesoftware.com/pub/infozip/zlib/
48+ zlib 1.1.3
49+
4050tcl8.0.3.tar.Z (Tcl)
4151
52+ In order to achieve meaningful results for the regression tests, you need
53+ a different shell. The standard QNX shell is quite broken with regard to
54+ scripting (even QSSL suggested to use pdksh or bash). Both are available
55+ in source and binaries at
56+ http://quics.qnx.com/cgi-bin/dir_find.cgi?/usr/free/
57+
4258flex can be built without any problems using the Watcom or GNU C compilers.
4359
60+ The current version of bison (1.2.8 at the time of this writing) does not
61+ build cleanly on QNX4 with gcc installed, but you can download src and
62+ binary of a previous version from the above mentioned ftp site.
63+
64+ download source
4465GNU C can be installed by
45- /etc/install -u egcs111 -qnx4-r20.tar[.gz]
66+ /etc/install -u egcs112 -qnx4-r20.tar[.gz]
4667
4768Although Tcl can be built after some slight code changes using the Watcom
4869compiler, the GNU C compiler should be used instead. Otherwise it would be
4970impossible to link postgres built with GNU C together with libtcl8.0.a built
50- with the Watcom compiler.
71+ with the Watcom compiler. However, if you are going to build a Watcom version
72+ you must build the tcl and tk libraries with Watcom too.
73+
5174To make unix/tclUnixTest.c compilable uncomment
5275#include <sys/resource.h>
5376in it or
@@ -79,17 +102,14 @@ ln -s /usr/src/pgsql/src/backend/port/qnx4/sem.h /usr/include/sys/sem.h
79102ln -s /usr/src/pgsql/src/backend/port/qnx4/shm.h /usr/include/sys/shm.h
80103
81104For ecgs-2.91.60 the file
82- /usr/local/lib/gcc-lib/i386-pc-qnx4/egcs-2.91.60 /include/g++/stl_alloc.h
105+ /usr/local/lib/gcc-lib/i386-pc-qnx4/egcs-2.91.66 /include/g++/stl_alloc.h
83106had to be patched (extern "C++" { ... } // extern "C++").
84107See attached patch.
85108
86- If you use another ecpg version the include/g++ path in Makefile.qnx4
87- (CXXFLAGS) has to be adopted.
88-
89109If all prerequisites are available postgres can be built and installed by
90110cd pgsql/src
91- ./configure --with-tcl --with-perl --with-x
92- gmake all > make.log 2>&1
111+ ./configure --with-tcl --without-tk --with-perl
112+ gmake > make.log 2>&1
93113gmake install > make.install.log 2>&1
94114su
95115cd interfaces/perl5
@@ -113,11 +133,15 @@ Currently yacc fails on backend/parser/gram.y and
113133interfaces/ecpg/preproc/preproc.y due to exceeded maximum table size. You can
114134generate the gram.h, parse.h, preproc.h and preproc.c files on another platform
115135and use them. This is only a problem when you use the current source tree since
116- parse.h, gram.c, preproc.h and preporc.c are included in official
117- distributions.
136+ parse.h, gram.c, preproc.h and preproc.c are included in official
137+ distributions. In order to avoid this, install the bison binary mentioned
138+ above.
118139
119140Regression tests:
120141-----------------
142+ please don't use the QNX shell for the parallel regression tests. Download
143+ bash from quics.qnx.com and run 'make SHELL=/usr/local/bin/bash check'
144+ instead.
121145
122146The majority of regression tests succeeded. The following tests failed:
123147
@@ -136,7 +160,8 @@ if a value of type money is inserted in string representation e.g. as in
136160"insert into rtest_emp values ('wiech', '5000.00');"
137161Subject of further investigation.
138162
139- create_function_2, triggers, misc, plpgsql:
163+ create_function_1, create_function_2, create_type, create_operator,
164+ create_view, select_views, triggers, misc, plpgsql:
140165Error messages due to the lack of shared library support.
141166
142167numeric, numeric_big, sanity_check:
@@ -147,14 +172,19 @@ Subject of further investigation. Probably because of the missing indices
147172these numeric tests take a long time.
148173The diffence in sanity_check.out is a consequence of this problem only.
149174
150- The reached state of this port should be sufficient for lot of applications.
175+ The current state of this port should be sufficient for lot of applications.
176+
177+ The Watcom version failed additional tests because of the lack of int8
178+ support.
151179
152180Have fun!
153181
154182Andreas Kardos
155- kardos@repas-aeg.de
1561832000-04-04
157184
185+ Bernd Tegge
186+ tegge@repas-aeg.de
187+ 2001-03-01
158188
159189---------------------------------------------------------------------------
160190
0 commit comments