diff options
author | Thomas G. Lockhart | 2000-02-15 05:22:36 +0000 |
---|---|---|
committer | Thomas G. Lockhart | 2000-02-15 05:22:36 +0000 |
commit | f770a61cfa183bb90f17570da4d473caa2a734be (patch) | |
tree | 5abdea5c45f538f711f4c025bead8a42d70ca7c9 /doc/FAQ_QNX4 | |
parent | f0c66e539b03258a19459e1a227a0a9f8de746f8 (diff) |
Rename file to be consistant with other platform-specific FAQs.
Diffstat (limited to 'doc/FAQ_QNX4')
-rw-r--r-- | doc/FAQ_QNX4 | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/doc/FAQ_QNX4 b/doc/FAQ_QNX4 new file mode 100644 index 00000000000..288283cd03a --- /dev/null +++ b/doc/FAQ_QNX4 @@ -0,0 +1,188 @@ +PostgresSQL on QNX 4 +-------------------- + +This port is an important step because PostgreSQL is now the only free +relational database with full SQL and ODBC support available for QNX 4. +The only commercial databases available are Empress RDBMS and Velocis +Database Server (not supported for Digital Unix). + +The most effort required the emulation of System V semaphore sets, +shared memory and IPC and of some IEEE floating-point functionality. For +the Watcom compiler spinlocks have been implemented using POSIX semaphores. + +It is recomended to use the GNU C compiler instead of the Watcom compiler +because the Watcom compiler doesn't support a int8 datatype (long or +long long int) and it does not have a C++ frontend. +It could be managed to build postgres using the Watcom compiler but it crashes +quite early. These problems probably could be solved. The only advantage would +be support of Tk and pgaccess. For the Watcom compiler some more modifications +have to be made which are not described here. + +QNX 4 does not offer native support of shared libraries. Therefore the related +functionality cannot be used. Shared library support could probably be +implemented in future. + +QNX 4 does not support UNIX domain sockets. Connections can only be made +with TCP/IP sockets. Therefore postmaster must always be started with the +-i option. Furthermore it would be useful to set the PGHOST variable. + +Prerequisites: +-------------- + +The following prerequisites have been used: + +QNX 4.25 +Watcom C 10.6 +GNU make +flex-2.5.4a.tar.gz (flex) +egcs111-qnx4-r20.tar[.gz] (GNU C) +perl 5.004_04 +tcl8.0.3.tar.Z (Tcl) + +flex can be built without any problems using the Watcom or GNU C compilers. + +GNU C can be installed by +/etc/install -u egcs111-qnx4-r20.tar[.gz] + +Although Tcl can be built after some slight code changes using the Watcom +compiler, the GNU C compiler should be used instead. Otherwise it would be +impossible to link postgres built with GNU C together with libtcl8.0.a built +with the Watcom compiler. +To make unix/tclUnixTest.c compilable uncomment +#include <sys/resource.h> +in it or +touch /usr/include/sys/resource.h +In unix/Makefile.in replace + ( echo cd $(TOP_DIR)/tests\; source all ) | ./tcltest +by + ( echo cd ../tests\; source all ) | ./tcltest +After that Tcl can be built and tested as stated in README. + +Tk cannot be built with GNU C due to the lack of a stack version of the +X11 library. With the Watcom compiler Tk could be built but this is not useful +because of the link problems mentioned above. + +Therefore the Tk interface and the pgaccess tool cannot be supported for a GNU C +version of PostgreSQL on QNX 4. + +PostgreSQL: +----------- + +On QNX 4 some headers are not in the directories expected. To avoid +modifications of the code the following links should be made: + +ln -s /usr/local/bin/perl /usr/local/bin/perl5 +ln -s /usr/include/errno.h /usr/include/sys/errno.h +ln -s /usr/include/ioctl.h /usr/include/sys/ioctl.h +ln -s /usr/src/pgsql/src/backend/port/qnx4/ipc.h /usr/include/sys/ipc.h +ln -s /usr/src/pgsql/src/backend/port/qnx4/sem.h /usr/include/sys/sem.h +ln -s /usr/src/pgsql/src/backend/port/qnx4/shm.h /usr/include/sys/shm.h + +For ecgs-2.91.60 the file +/usr/local/lib/gcc-lib/i386-pc-qnx4/egcs-2.91.60/include/g++/stl_alloc.h +had to be patched (extern "C++" { ... } // extern "C++"). +See attached patch. + +If you use another ecpg version the include/g++ path in Makefile.qnx4 +(CXXFLAGS) has to be adopted. + +If all prerequisites are available postgres can be built and installed by +cd pgsql/src +./configure --with-tcl --with-perl --with-x +gmake all > make.log 2>&1 +gmake install > make.install.log 2>&1 +su +cd interfaces/perl5 +gmake install +exit + +All other steps can be carried out as stated in the INSTALL file. + +Make problems: +-------------- + +Sometimes the Watcom library manager wlib crashes with SIGSEGV on some +object files. This is a general problem and not PostgreSQL related. +Currently bootstrap.o causes such a crash. The workaround is not to include +the object file into the SUBSYS.o but link it directly. For further information +see backend/Makefile and backend/bootstrap/Makefile. +libpgsql.a currently cannot be generated because of the same problem. But this +doesn't matter since shared libraries are not supported. + +Currently yacc fails on interfaces/ecpg/preproc/preproc.y because of +exceeded maximum table size. You can generate the preproc.h and preproc.c +files on another platform and use them. This is only a problem when you use +the current source tree since preproc.h and preporc.c are included in official +distributions. + +Regression tests: +----------------- + +The majority of regression tests succeeded. The following tests failed: + +int2, int4: +Error message "Result too large" instead of "Numerical result out of range". +Can be ignored. + +int8, float4: +Exponent expression "e+nnn" instead of "e+nn". Can be ignored. + +float8: +Exponent expression "e+nnn" instead of "e+nn" and some slight difference +in the last digit. +Can be ignored. + +geometry: +Some slight deviation in the last digit and "0" instead of "-0". +Can be ignored. + +datetime, abstime, tinterval, horology: +Differences for years outside the normal Unix range, e.g. 1968 +instead of 2105 +Can be ignored. + +create_function_2, triggers, misc, plpgsql: +Error messages due to the lack of shared library support. + +rules: +Subject of further investigation. + +numeric, numeric_big: +ERROR: Cannot create unique index. Table contains non-unique values +Subject of further investigation. Probably because of the missing indices +these tests take a long time. + +The reached state of this port should be sufficient for lot of applications. + +Have fun! + +Andreas Kardos +1999-12-16 + + +--------------------------------------------------------------------------- + +*** ./stl_alloc.h.orig Sat Feb 28 05:17:28 1998 +--- ./stl_alloc.h Tue Nov 23 04:14:09 1999 +*************** +*** 120,125 **** +--- 120,126 ---- + #pragma set woff 1174 + #endif + ++ extern "C++" { + // Malloc-based allocator. Typically slower than default alloc below. + // Typically thread-safe and more storage efficient. + #ifdef __STL_STATIC_TEMPLATE_MEMBER_BUG +*************** +*** 682,687 **** +--- 683,689 ---- + # endif + + #endif /* ! __USE_MALLOC */ ++ } // extern "C++" + + #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) + #pragma reset woff 1174 + |