summaryrefslogtreecommitdiff
path: root/doc/FAQ_QNX4
diff options
context:
space:
mode:
Diffstat (limited to 'doc/FAQ_QNX4')
-rw-r--r--doc/FAQ_QNX4229
1 files changed, 0 insertions, 229 deletions
diff --git a/doc/FAQ_QNX4 b/doc/FAQ_QNX4
deleted file mode 100644
index a7eb083e993..00000000000
--- a/doc/FAQ_QNX4
+++ /dev/null
@@ -1,229 +0,0 @@
-PostgreSQL on QNX 4
---------------------
-last updated: $Date: 2004/03/23 01:23:47 $
-
-current maintainer: Bernd Tegge ([email protected])
-original author: Andreas Kardos ([email protected])
-
-This port is an important step because PostgreSQL is still 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.
-
-It is recommended 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. The only advantage
-using Watcom C would be support of Tk and pgaccess.
-
-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. Clients must use TCP/IP
-sockets. Therefore, do not set "listen_addresses" to empty in your
-postgresql.conf file. In fact, it's advisable to explicitly set
-"listen_addresses" in an environment using native QNX networking.
-Otherwise the postmaster might not use the IP-Address you think it does :-)
-
-Prerequisites:
---------------
-
-The following prerequisites have been used:
-
-QNX standard:
-QNX 4.25, Watcom C 10.6, GNU make
-
-Available from http://www.teaser.fr/~jcmichot/
-flex-2.5.4a.tar.gz (flex)
-egcs-112-qnx4-r20.tar[.gz] (GNU C)
-
-Available from ftp://ftp.visi.com/users/hawkeyd/qnx/
-bison-1.2.5.tar.gz
-
-Available from http://quics.qnx.com/cgi-bin/dir_find.cgi?/usr/free/
-perl 5.004_04
-
-from ftp://ftp.freesoftware.com/pub/infozip/zlib/
-zlib 1.1.3
-
-tcl8.0.3.tar.Z (Tcl)
-
-In order to achieve meaningful results for the regression tests, you need
-a different shell. The standard QNX shell is quite broken with regard to
-scripting (even QSSL suggested to use pdksh or bash). Both are available
-in source and binaries at
-http://quics.qnx.com/cgi-bin/dir_find.cgi?/usr/free/
-
-flex can be built without any problems using the Watcom or GNU C compilers.
-
-The current version of bison (1.2.8 at the time of this writing) does not
-build cleanly on QNX4 with gcc installed, but you can download src and
-binary of a previous version from the above mentioned ftp site.
-
-download source
-GNU C can be installed by
-/etc/install -u egcs112-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. However, if you are going to build a Watcom version
-you must build the tcl and tk libraries with Watcom too.
-
-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.66/include/g++/stl_alloc.h
-had to be patched (extern "C++" { ... } // extern "C++").
-See attached patch.
-
-If all prerequisites are available postgres can be built and installed by
-cd pgsql/src
-./configure --with-tcl --without-tk --with-perl
-gmake > 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.
-(The Makefiles are already changed to ignore this, you don't have to
-do anything)
-
-Regression tests:
------------------
-please don't use the QNX shell for the parallel regression tests. Download
-bash from quics.qnx.com and run 'make SHELL=/usr/local/bin/bash check'
-instead.
-
-The majority of regression tests succeeded. The following tests failed:
-
-geometry:
-Some slight deviation in the last digit and "0" instead of "-0".
-Can be ignored.
-
-timestamp, tinterval, abstime, horology:
-Differences for years before the UNIX epoch. The QNX library probably treats
-time_t as unsigned -> dates before 1970 get moved into the far future.
-Can be ignored.
-
-create_function_1, create_function_2, create_type, create_operator,
-create_view, select_views, triggers, misc, plpgsql:
-Error messages due to the lack of shared library support.
-
-rules, select_views:
-looks like it fails because it depends on tables created by previously
-failing tests.
-
-alter_table:
-An expected failure message contains one blank more than expected.
-Possibly a faulty output file.
-
-int8, subselect, union
-fails for Watcom version because of lacking int8 support.
-
-The current state of this port should be sufficient for lot of applications.
-
-
-Have fun!
-
-Andreas Kardos
-2000-04-04
-
-Bernd Tegge
-2001-12-10
-
----------------------------------------------------------------------------
-
-*** ./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
-
-
-Patch required to build with gcc:
-
-*** /usr/src/postgresql-7.2b3/src/backend/port/qnx4/sem.h Thu Nov 8 21:37:52 2001
---- src/backend/port/qnx4/sem.h Mon Dec 10 13:22:18 2001
-***************
-*** 55,60 ****
---- 55,71 ----
- ushort_t sem_num; /* semaphore # */
- short sem_op; /* semaphore operation */
- short sem_flg; /* operation flags */
-+ };
-+
-+ /*
-+ * command union for semctl.
-+ */
-+
-+ union semun {
-+ int val; /* value for SETVAL */
-+ struct semid_ds *buf; /* buffer for IPC_STAT, IPC_SET */
-+ unsigned short int *array; /* array for GETALL, SETALL */
-+ struct seminfo *__buf; /* buffer for IPC_INFO */
- };
-
- extern int semctl(int semid, int semnum, int cmd, /* ... */ union semun arg);