State of the QNX Port - Mailing list pgsql-ports

From Tegge, Bernd
Subject State of the QNX Port
Date
Msg-id 5.0.0.25.0.20010228211209.00aa10a0@dragon.dr.repas.de
Whole thread Raw
Responses Re: State of the QNX Port
List pgsql-ports
Andreas Kardos has left for greener pastures, so for now I'm stuck with
maintaining postgres on QNX4. I have some 10+ years of experience with QNX
but I know little about DBMS (including postgres).

I have tried to build the postgresql-7.1beta5 on QNX4.25. I have succeeded
in getting it to compile and link. However, during 'make check' the
postmaster enters a never ending loop. Beta4 fails with "IpcSemaphoreCreate:
semget : Invalid argument". I will look into this problem over
the weekend. So far here is the list of obstacles encountered :


* config/prep_buildtree :
   * caused configure to exit, because the QNX shell may or may not return
     an exit code of 0 if a script just ends without an exit statement.
     added an 'exit 0' as last line
   * the script  called from configure replaced all Makefiles with
     symlinks to themselves. This is because configure notices a difference
     between $abs_top_builddir and $abs_top_srcdir. However they are the
     same; the former just contains a net absolute path (i.e. has a
     //<node> prefix ). This might also happen if the path contains a
     symlink that is being resolved in one of the variables.
     probably QNX specific
--- prep_buildtree.org  Wed Feb 28 22:02:04 2001
+++ prep_buildtree      Wed Feb 28 22:26:01 2001
@@ -19,16 +19,26 @@

  buildtree=${2:-'.'}

+# check if $buildtree is an alias of $sourcetree
+rm -f $buildtree/$$
+touch $sourcetree/$$
+if test -f $buildtree/$$ ; then
+  rm -f $sourcetree/$$
+  exit 0
+fi
+exit 0
  for item in `find "$sourcetree" -type d \( -name CVS -prune -o -print \)`; do
      subdir=`expr "$item" : "$sourcetree\(.*\)"`
      if test ! -d "$buildtree/$subdir"; then
-        mkdir -p "$buildtree/$subdir" || exit
+        mkdir -p "$buildtree/$subdir" || exit 1
      fi
  done

  for item in `find "$sourcetree" -name Makefile -o -name GNUmakefile`; do
      subdir=`expr "$item" : "$sourcetree\(.*\)"`
      if test ! -f "${item}.in"; then
-        ln -fs "$item" "$buildtree/$subdir" || exit
+        ln -fs "$item" "$buildtree/$subdir" || exit 1
      fi
  done
+exit 0

* The shell command for remove-old-headers in ~/src/include/Makefile gave a
   syntax error, because of a missing semicolon:

--- Makefile    Wed Feb 28 20:33:33 2001
+++ Makefile.bck        Wed Feb 28 20:33:33 2001
@@ -78,7 +78,7 @@
                         : ; \
                 else \
                         rm -f $(DESTDIR)$(includedir)/$$file; \
-               fi ; \
+               fi \
         done

* missing -lz in ~/src/bin/pg_dump/Makefile for pg_dump and pg_restore.
   pg_dump and pg_restore make calls into the zlib, but have no -lz in the
   link command.

--- Makefile.org        Wed Feb 28 22:28:49 2001
+++ Makefile    Wed Feb 28 22:15:21 2001
@@ -21,10 +21,10 @@
  all: submake pg_dump pg_restore pg_dumpall

  pg_dump: pg_dump.o common.o $(OBJS) $(libpq_builddir)/libpq.a
-       $(CC) $(CFLAGS) pg_dump.o common.o $(OBJS) $(libpq) $(LDFLAGS)
$(LIBS) -
o $@
+       $(CC) $(CFLAGS) pg_dump.o common.o $(OBJS) $(libpq) $(LDFLAGS)
$(LIBS) -
lz -o $@

  pg_restore: pg_restore.o $(OBJS) $(libpq_builddir)/libpq.a
-       $(CC) $(CFLAGS) pg_restore.o $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -o $@
+       $(CC) $(CFLAGS) pg_restore.o $(OBJS) $(libpq) $(LDFLAGS) $(LIBS) -lz -o
$@

  ../../utils/strdup.o:
         $(MAKE) -C ../../utils strdup.o

Changes :

- replacement ~/src/backend/port/dynloader/qnx4.h
   (clashed with the new fmgr code )

--
Bernd Tegge                  mailto:tegge@repas-aeg.de
Tel: ++49-511-87449-12       repas AEG Automation GmbH
Fax: ++49-511-87449-20       GS Hannover, Germany
/*-------------------------------------------------------------------------
 *
 * dynloader.h
 *      dynamic loader for QNX4 using the shared library mechanism
 *
 * Copyright (c) 1999,2001, repas AEG Automation GmbH
 *
 *
 * IDENTIFICATION
 *      $Header: /home/projects/pgsql/cvsroot/pgsql/src/backend/port/dynloader/qnx4.h,v 1.2 2000/05/28 17:56:02 tgl Exp
$
 *
 *    NOTES
 *
 *-------------------------------------------------------------------------
 */
/* System includes */
#ifndef PORT_PROTOS_H
#define PORT_PROTOS_H

#include "utils/dynamic_loader.h"

#endif

pgsql-ports by date:

Previous
From: "Terry Hughes"
Date:
Subject: installation on Mandrake Linux
Next
From: Christian Thrum
Date:
Subject: where is the postmaster executable in the win nt distribution ?