Postgres 7.1RC1 on Solaris 7

Started by Ahmed Moustafaabout 25 years ago18 messagesgeneral
Jump to latest
#1Ahmed Moustafa
ahmed.moustafa@bigfoot.com

Hi,

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

Your help will be appreciated so much.

Ahmed Moustafa

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Ahmed Moustafa (#1)
Re: Postgres 7.1RC1 on Solaris 7

Ahmed Moustafa writes:

Hi,

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

In configure, line 6846, can you replace the 'return 0;' by 'exit(0);'?
It's a long shot, but I don't see any other possibility.

--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

Peter Eisentraut <peter_e@gmx.net> writes:

Ahmed Moustafa writes:

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

In configure, line 6846, can you replace the 'return 0;' by 'exit(0);'?
It's a long shot, but I don't see any other possibility.

I am suspicious that it's a library linking issue. Unfortunately,
configure unhelpfully /dev/null's the stderr output obtained while
trying to execute the test program. (Peter, shouldn't we suggest to
the autoconf boys that that output ought to go into config.log?)

Please try running the same test scenario by hand so we can see what is
printed:

echo "int main() { return 0; }" >conftest.c
gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl -lm
./conftest

It might also be useful to see what "ldd conftest" produces.

regards, tom lane

#4Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

Hi Peter,

I did the test by hand and here is the output:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory
Killed
bash-2.03# ldd conftest
libz.so => (file not found)
libresolv.so.2 => /usr/lib/libresolv.so.2
libgen.so.1 => /usr/lib/libgen.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libm.so.1 => /usr/lib/libm.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
bash-2.03#

So, how can I fix the problem, please?

Best Regards,

Ahmed

Tom Lane wrote:

Show quoted text

Peter Eisentraut <peter_e@gmx.net> writes:

Ahmed Moustafa writes:

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

In configure, line 6846, can you replace the 'return 0;' by 'exit(0);'?
It's a long shot, but I don't see any other possibility.

I am suspicious that it's a library linking issue. Unfortunately,
configure unhelpfully /dev/null's the stderr output obtained while
trying to execute the test program. (Peter, shouldn't we suggest to
the autoconf boys that that output ought to go into config.log?)

Please try running the same test scenario by hand so we can see what is
printed:

echo "int main() { return 0; }" >conftest.c
gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl -lm
./conftest

It might also be useful to see what "ldd conftest" produces.

regards, tom lane

#5Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

Hi Peter,

Changing line 6846 gave me the same error message.

Ahmed

Peter Eisentraut wrote:

Show quoted text

Ahmed Moustafa writes:

Hi,

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

In configure, line 6846, can you replace the 'return 0;' by 'exit(0);'?
It's a long shot, but I don't see any other possibility.

--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

#6Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

Hi Tom,

I did the test by hand and here is the output:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory
Killed
bash-2.03# ldd conftest
libz.so => (file not found)
libresolv.so.2 => /usr/lib/libresolv.so.2
libgen.so.1 => /usr/lib/libgen.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libm.so.1 => /usr/lib/libm.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
bash-2.03#

So, how can I fix the problem, please?

Best Regards,

Ahmed

Tom Lane wrote:

Show quoted text

Peter Eisentraut <peter_e@gmx.net> writes:

Ahmed Moustafa writes:

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

In configure, line 6846, can you replace the 'return 0;' by 'exit(0);'?
It's a long shot, but I don't see any other possibility.

I am suspicious that it's a library linking issue. Unfortunately,
configure unhelpfully /dev/null's the stderr output obtained while
trying to execute the test program. (Peter, shouldn't we suggest to
the autoconf boys that that output ought to go into config.log?)

Please try running the same test scenario by hand so we can see what is
printed:

echo "int main() { return 0; }" >conftest.c
gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl -lm
./conftest

It might also be useful to see what "ldd conftest" produces.

regards, tom lane

#7Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#3)
Re: Postgres 7.1RC1 on Solaris 7

Tom Lane writes:

(Peter, shouldn't we suggest to the autoconf boys that that output
ought to go into config.log?)

It seems your request has already been heard. In general, the config.log
files from Autoconf 2.50 are a *lot* better, e.g., they actually include
the result of the test. Should be released soon. (They've been saying so
at least as long as PostgreSQL anyway.)

--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

#8Peter Eisentraut
peter_e@gmx.net
In reply to: Ahmed Moustafa (#4)
Re: Postgres 7.1RC1 on Solaris 7

Ahmed Moustafa writes:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory

You need to set the LD_LIBRARY_PATH environment variable to include the
location where libz is installed, e.g.,

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

... or whichever method to configure the dynamic linker you prefer. I'll
update FAQ_Solaris about this.

--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

#9Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Peter Eisentraut (#8)
Re: Postgres 7.1RC1 on Solaris 7

Thanks a lot. Adding /usr/local/lib to the LD_LIBRARY_PATH solved the problem. But
now Webmin gives this error

"The PostgreSQL database on your system is version , but Webmin only supports
versions 6.5 and above."

Although, it was working with version 7.0.3. Is it Webmin's problem?

Again, thanks a lot for your help.

Peter Eisentraut wrote:

Show quoted text

Ahmed Moustafa writes:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory

You need to set the LD_LIBRARY_PATH environment variable to include the
location where libz is installed, e.g.,

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

... or whichever method to configure the dynamic linker you prefer. I'll
update FAQ_Solaris about this.

--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/

#10David George
david@onyxsoft.com
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

Ahmed Moustafa wrote:

Hi Tom,

I did the test by hand and here is the output:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory
Killed
bash-2.03# ldd conftest
libz.so => (file not found)

Are you sure you have zlib? Solaris 7 doesn't come with it. Try doing a 'find /
-name libz.a -print'. If it doesn't find anything you will need to download
zlib-1.1.3 from ftp://ftp.freesoftware.com/pub/infozip/zlib/zlib-1.1.3.tar.gz

Hope this helps.

--
David

#11Tom Lane
tgl@sss.pgh.pa.us
In reply to: David George (#10)
Re: Postgres 7.1RC1 on Solaris 7

David George <david@onyxsoft.com> writes:

Ahmed Moustafa wrote:

I did the test by hand and here is the output:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory
Killed
bash-2.03# ldd conftest
libz.so => (file not found)

Are you sure you have zlib? Solaris 7 doesn't come with it.

configure had found zlib earlier in its run, so it's on his machine
somewhere. The problem here is inconsistency between the library search
path used when creating an executable and the search path used by the
dynamic loader at run time. (gcc's habit of searching /usr/local/lib
by default can be nasty on a platform whose dynamic loader doesn't also
have that convention...)

regards, tom lane

#12Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

I got another problem. Here is my /etc/init.d/postgres

#------------------------------------------------------------------------------------

#!/bin/sh
# PostgreSQL

case "$1" in
'start')
su - postgres -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start"
;;
'stop')
su - postgres -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop"
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0

#------------------------------------------------------------------------------------

When I do "/etc/init.d/postgres start" as a root, I get:

ld.so.1: /usr/local/pgsql/bin/postmaster: fatal: libz.so: open failed: No such file
or directory
548 Killed
postmaster successfully started

And, when I do "psql testdb" as postgres, I get:
psql: connectDBStart() -- connect() failed: No such file or directory
Is the postmaster running locally
and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?

But, when I do "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start" as
postgres, everything works fine.

Also, the "env" gives same for both root and postgres:
PWD=/export/home/postgres
TZ=US/Pacific
HZ=100
HOSTNAME=my_host_name
LD_LIBRARY_PATH=/usr/lib/:/usr/local/lib:/usr/local/pgsql/lib
MANPATH=:/usr/local/pgsql/man
MACHTYPE=sparc-sun-solaris2.7
WAS_DIR=/opt/WebSphere/AppServer
DISPLAY=10.209.70.125:0.0
LOGNAME=postgres
SHLVL=1
SHELL=/usr/local/bin/bash
HOSTTYPE=sparc
CVSROOT=/usr/local/cvsroot
OSTYPE=solaris2.7
HOME=/export/home/postgres
TERM=vt100
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X/bin:/usr/ccs/bin:/usr/local/pgsql/bin

_=/bin/env

What could be the problem, please?

Your help is appreciated so much.

Ahmed

Tom Lane wrote:

Show quoted text

David George <david@onyxsoft.com> writes:

Ahmed Moustafa wrote:

I did the test by hand and here is the output:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory
Killed
bash-2.03# ldd conftest
libz.so => (file not found)

Are you sure you have zlib? Solaris 7 doesn't come with it.

configure had found zlib earlier in its run, so it's on his machine
somewhere. The problem here is inconsistency between the library search
path used when creating an executable and the search path used by the
dynamic loader at run time. (gcc's habit of searching /usr/local/lib
by default can be nasty on a platform whose dynamic loader doesn't also
have that convention...)

regards, tom lane

#13Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ahmed Moustafa (#12)
Re: Postgres 7.1RC1 on Solaris 7

Ahmed Moustafa <ahmed.moustafa@bigfoot.com> writes:

When I do "/etc/init.d/postgres start" as a root, I get:

ld.so.1: /usr/local/pgsql/bin/postmaster: fatal: libz.so: open failed: No such file
or directory

I should think the answer would be fairly obvious: LD_LIBRARY_PATH isn't
set in your root environment.

regards, tom lane

#14Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Tom Lane (#13)
RE: Postgres 7.1RC1 on Solaris 7

Tom,

I set LD_LIBRARY_PATH in root's .profile and I still get the same error. Do
I need to set somewhere else, please?

Best Regards,

Ahmed

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Wednesday, April 04, 2001 5:44 PM
To: Ahmed Moustafa
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] Postgres 7.1RC1 on Solaris 7

Ahmed Moustafa <ahmed.moustafa@bigfoot.com> writes:

When I do "/etc/init.d/postgres start" as a root, I get:

ld.so.1: /usr/local/pgsql/bin/postmaster: fatal: libz.so: open failed: No

such file

or directory

I should think the answer would be fairly obvious: LD_LIBRARY_PATH isn't
set in your root environment.

regards, tom lane

#15Martín Marqués
martin@bugs.unl.edu.ar
In reply to: Ahmed Moustafa (#14)
Re: Postgres 7.1RC1 on Solaris 7

On Friday 06 April 2001 06:20, Ahmed Moustafa wrote:

Tom,

I set LD_LIBRARY_PATH in root's .profile and I still get the same error.
Do I need to set somewhere else, please?

I had the same problem. It's because Solaris isn't reading the .bashrc,
.profile or what ever. Solution: ln -s /usr/local/lib/libz.so /usr/lib/libz.so

Saludos... :-)

--
El mejor sistema operativo es aquel que te da de comer.
Cuida tu dieta.
-----------------------------------------------------------------
Martin Marques | mmarques@unl.edu.ar
Programador, Administrador | Centro de Telematica
Universidad Nacional
del Litoral
-----------------------------------------------------------------

#16Justin Clift
justin@postgresql.org
In reply to: Peter Eisentraut (#2)
Re: Postgres 7.1RC1 on Solaris 7

Hi,

It doesn't seem to have been mentioned that the preferable way to
compile PostgreSQL on Solaris is to unset your LD_LIBRARY_PATH and set
an LD_RUN_PATH instead.

That is right isn't it?

Regards and best wishes,

Justin Clift

Ahmed Moustafa wrote:

Hi Tom,

I did the test by hand and here is the output:

bash-2.03# echo "int main() { return 0; }" >conftest.c
bash-2.03# gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl
-lm
bash-2.03# ./conftest
ld.so.1: ./conftest: fatal: libz.so: open failed: No such file or directory
Killed
bash-2.03# ldd conftest
libz.so => (file not found)
libresolv.so.2 => /usr/lib/libresolv.so.2
libgen.so.1 => /usr/lib/libgen.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libm.so.1 => /usr/lib/libm.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1
bash-2.03#

So, how can I fix the problem, please?

Best Regards,

Ahmed

Tom Lane wrote:

Peter Eisentraut <peter_e@gmx.net> writes:

Ahmed Moustafa writes:

I downloaded Postgres 7.1RC1 from
ftp://ftp.postgresql.org/pub/dev/postgresql-7.1RC1.tar.gz. When I did
./configure, I got a error with the test program. I could not figure out
the problem. Would you take a look at the config.log
(http://www.photo.net/users/ahmed/config.log) and tell me the problem
is, please?

In configure, line 6846, can you replace the 'return 0;' by 'exit(0);'?
It's a long shot, but I don't see any other possibility.

I am suspicious that it's a library linking issue. Unfortunately,
configure unhelpfully /dev/null's the stderr output obtained while
trying to execute the test program. (Peter, shouldn't we suggest to
the autoconf boys that that output ought to go into config.log?)

Please try running the same test scenario by hand so we can see what is
printed:

echo "int main() { return 0; }" >conftest.c
gcc -o conftest conftest.c -lz -lresolv -lgen -lnsl -lsocket -ldl -lm
./conftest

It might also be useful to see what "ldd conftest" produces.

regards, tom lane

------------------------------------------------------------------------

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

--
"My grandfather once told me that there are two kinds of people: those
who work and those who take the credit. He told me to try to be in the
first group; there was less competition there."
- Indira Gandhi

#17Ahmed Moustafa
ahmed.moustafa@bigfoot.com
In reply to: Martín Marqués (#15)
RE: Postgres 7.1RC1 on Solaris 7

Mart�n,

The problem was solved by explicitly defining LD_LIBRARY_PATH in the command
line i.e.

su - postgres -c "export
LD_LIBRARY_PATH=/usr/lib/:/usr/local/lib:/usr/local/pgsql/lib ;
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start"

Best Regards,

Ahmed

-----Original Message-----
From: Mart�n Marqu�s [mailto:martin@bugs.unl.edu.ar]
Sent: Friday, April 06, 2001 9:22 AM
To: Ahmed Moustafa; Tom Lane
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] Postgres 7.1RC1 on Solaris 7

On Friday 06 April 2001 06:20, Ahmed Moustafa wrote:

Tom,

I set LD_LIBRARY_PATH in root's .profile and I still get the same error.
Do I need to set somewhere else, please?

I had the same problem. It's because Solaris isn't reading the .bashrc,
.profile or what ever. Solution: ln -s /usr/local/lib/libz.so
/usr/lib/libz.so

Saludos... :-)

--
El mejor sistema operativo es aquel que te da de comer.
Cuida tu dieta.
-----------------------------------------------------------------
Martin Marques | mmarques@unl.edu.ar
Programador, Administrador | Centro de Telematica
Universidad Nacional
del Litoral
-----------------------------------------------------------------

#18Peter Eisentraut
peter_e@gmx.net
In reply to: Justin Clift (#16)
Re: Postgres 7.1RC1 on Solaris 7

Justin Clift writes:

It doesn't seem to have been mentioned that the preferable way to
compile PostgreSQL on Solaris is to unset your LD_LIBRARY_PATH and set
an LD_RUN_PATH instead.

That is right isn't it?

Not really. You don't need to set either of these variables. In the
problem that was posted LD_LIBRARY_PATH was necessary to find a
non-PostgreSQL library. This is a system administration issue, which any
other source package (that uses the library in question) would run into.

--
Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/