Re: Various bugs with PG7.1 8th March snapshot on Solaris 8 INTEL

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Justin Clift <jclift(at)iprimus(dot)com(dot)au>
Cc: <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: Various bugs with PG7.1 8th March snapshot on Solaris 8 INTEL
Date: 2001-03-13 18:13:02
Message-ID: Pine.LNX.4.30.0103131859360.2274-100000@peter.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Justin Clift writes:

> When --with-openssl=<the path to my openssl dir> is given to configure
> on Solaris 8 INTEL, the compilation errors in :

This is an OpenSSL namespace problem on some platforms (Solaris, Unixware
so far). Nothing we can really do about it.

> Next problem is that running 'gmake check' expects to find the new
> 'postgres' file in the normal PATH, not in the temporary installation
> PATH. I deduce this from the ./src/test/regress/log/initdb.log file
> which complains about not being able to find the 'postgres' file in the
> installation location.

> The program 'postgres' is needed by initdb but was not found in
> the directory '/opt/postgresql71/bin'. Check your installation.

Odd. The initdb program first tries the path that itself is in and then
the path that it is *supposed* to be in:

if echo "$0" | grep '/' > /dev/null 2>&1
then
# explicit dir name given
self_path=`echo $0 | sed 's,/[^/]*$,,'` # (dirname command is not portable)
else
# look for it in PATH ('which' command is not portable)
for dir in `echo "$PATH" | sed 's/:/ /g'`
do
# empty entry in path means current dir
[ -z "$dir" ] && dir='.'
if [ -f "$dir/$CMDNAME" ]
then
self_path="$dir"
break
fi
done
fi

The regression test script should always invoke the first case ($0 starts
contains '/'). Apparently, in your case something went wrong there and it
tries looking for it in PATH. Can you see why that is the case? (E.g,
run gmake check SHELL='/bin/sh -x' or sh -x initdb.)

> A third problem and solution is this misleading error message :

> After investigating a bit futher, the reason for the error message was
> really that I didn't have the path to the openssl library files in
> LD_LIBRARY_PATH :
>
> $ initdb
> The program '/opt/postgresql71/bin/postgres' needed by initdb does not
> belong to PostgreSQL version 7.1beta5. Check your installation.
>
> $ cd /opt/postgresql71/bin
> $ ./postgres -version
> ld.so.1: ./postgres: fatal: libssl.so.0: open failed: No such file or
> directory
> Killed

The problem here is that we can't really distinguish this failure from
other failures (such as not implementing the --version option), so I don't
know how to make the error message better. I suppose we could capture the
stderr and print it to the screen. In fact, I'll try that. However,
another way to view this problem is that the OpenSSL libraries weren't
linked properly.

> In the regression test side of things, Solaris 8 INTEL seems be having
> troubles with handling int8 types. Not sure if this is a known
> problem. The int8 tests failed with error messages like :
>
> INSERT INTO INT8_TBL VALUES('123','4567890123456789');
> + ERROR: int8 value out of range: "4567890123456789"

Ugh. Did configure detect a working 64 bit integer? HAVE_LONG_INT_64 and
HAVE_LONG_LONG_INT_64 should be defined in config.h.

> if [ -e $dir/Makefile ]; then \
> make -C $dir clean; \
> fi; \
> done
> /bin/sh: test: argument expected

I see. 'test -e' is known to be missing on Solaris. Will fix.

--
Peter Eisentraut peter_e(at)gmx(dot)net http://yi.org/peter-e/

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2001-03-13 18:16:31 Re: Various bugs with PG7.1 8th March snapshot on Solaris 8 INTEL
Previous Message Terry Carlin 2001-03-13 16:15:07 RE: Memory leak in ODBC driver