Port for SGI Irix using today's snapshot.

Started by Robert Bruccoleriover 26 years ago1 messages
#1Robert Bruccoleri
bruc@pluto.njcc.com

I've been able to get today's snapshot of PostgreSQL 6.5 beta to run
on an SGI running Irix 6.4. The following steps must be taken.

1.Add the following block to src/Makefile.shlib

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

2. Make src/Makefile.custome with

CUSTOM_CC = cc -32
LD += -32
MK_NO_LORDER = 1

3. Modify the install script to always copy, never move. The following install will work:

#!/bin/ksh
# Stripping is ignored in this version of install.

cmd=/bin/cp
strip=""
chmod="/bin/chmod 755"
user=`/usr/bin/whoami`
if [ $user = "root" ]
then
chown="/bin/chown bin"
chgrp="/bin/chgrp bin"
else
chown="/bin/chown $user"
set -A groups `/usr/bin/groups`
chgrp="/bin/chgrp ${groups[0]}"
fi
while :
do
case $1 in
-s ) strip=""
;;
-c ) cmd="/bin/cp"
;;
-m ) chmod="/bin/chmod $2"
shift
;;
-o ) chown="/bin/chown $2"
shift
;;
-g ) chgrp="/bin/chgrp $2"
shift
;;
* ) break
;;
esac
shift
done

case "$2" in
"") echo "install: no destination specified"
exit 1
;;
.|"$1") echo "install: can't move $1 onto itself"
exit 1
;;
esac
case "$3" in
"") ;;
*) echo "install: too many files specified -> $*"
exit 1
;;
esac
if [ -d $2 ]
then file=$2/$1
else file=$2
fi
/bin/rm -f $file
$cmd $1 $file
[ $strip ] && $strip $file
$chown $file
$chgrp $file
$chmod $file

4. Configure nsl off and make sure the correct install program is
used. The following shell statements will do this.

cd src
rm config.cache
cat >config.cache <<EOF
ac_cv_lib_nsl_main=${ac_cv_lib_nsl_main='no'}
EOF
gmake clean
INSTALL="your install program as above" ./configure --prefix=/pg/pgsql --without-CXX ...

========================================================================

I haven't yet gotten libpq++ to build correctly and one regression test,
misc.out, fails due to a segmentation error in the copying of binary
data. The traceback is

dbx ../../../bin/postgres (wd: /pg/pgsql/data/base/regression)
use /pg/pgsql/src/backend/commands
(dbx) where

0 CopyFrom(0x10147450, 0x1, 0x0, 0xfb4d6f4) ["copy.c":809, 0x48e1f0]

1 DoCopy(0x1013a5d0, 0x1, 0x0, 0x1) ["copy.c":304, 0x48c760]
2 ProcessUtility(0x1013a630, 0x3, 0x0, 0x1013ab78) ["utility.c":227, 0x5598f8]
3 pg_exec_query_dest(0x7ffee364, 0x3, 0x0, 0x1013ab78) ["postgres.c":718, 0x556eb8]
4 pg_exec_query(0x7ffee364, 0x1014e1d0, 0x0, 0x1013ab78) ["postgres.c":654, 0x556d34]
5 PostgresMain(0x8, 0x7fff28f0, 0x7, 0x7fff2e84) ["postgres.c":1649, 0x5586f4]
6 DoBackend(0x100e2b10, 0x1014e1d0, 0x0, 0x1013ab78) ["postmaster.c":1611, 0x525a6c]
7 BackendStartup(0x100e2b10, 0x1014e1d0, 0x0, 0x1013ab78) ["postmaster.c":1356, 0x525260]
8 ServerLoop(0x1013ab88, 0x1014e1d0, 0x0, 0x1013ab78) ["postmaster.c":806, 0x524060]
9 PostmasterMain(0x7, 0x7fff2e84, 0x0, 0x1013ab78) ["postmaster.c":599, 0x5237cc]
10 main(0x7, 0x7fff2e84, 0x0, 0x1013ab78) ["main.c":93, 0x4cc92c]
11 __istart() ["crt1tinit.s":13, 0x42a490]
(dbx) l

* 809 ptr = att_addlength(ptr, attr[i]->attlen, ptr);

810 }
811 }
812 }
813 }
814 if (done)
815 continue;
816
817 /*
818 * Does it have any sence ? - vadim 12/14/96

Sincerely,
Bob

+----------------------------------+------------------------------------+
| Robert E. Bruccoleri, Ph.D.      | Phone: 609 737 6383                |
| President, Congenomics, Inc.     | Fax:   609 737 7528                |
| 114 W. Franklin Ave, Suite K1,10 | email: bruc@acm.org                |
| P.O. Box 314                     | URL:   http://www.congen.com/~bruc |
| Pennington, NJ 08534             |                                    |
+----------------------------------+------------------------------------+