building 9.1 on suse-11.4 (64bit)

Started by Rob Sargentalmost 15 years ago8 messagesgeneral
Jump to latest
#1Rob Sargent
robjsargent@gmail.com

Seems to me a lot of the needed standard libraries are in '/lib64' and
the linker isn't looking for them there? So far I've hit libreadline
and libz. Do I just keep making the sim-links into /usr/lib64?

postgres 9.0.3 on 11.2 worked like a champ. Unforturnately I've
upgraded my os, thought I would so the same for postgres. It's a dev
box afterall.

Cheers,

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rob Sargent (#1)
Re: building 9.1 on suse-11.4 (64bit)

Rob Sargent <robjsargent@gmail.com> writes:

Seems to me a lot of the needed standard libraries are in '/lib64' and
the linker isn't looking for them there? So far I've hit libreadline
and libz. Do I just keep making the sim-links into /usr/lib64?

Most of the required libraries are in /lib64 on my Fedora box, too,
and it works just fine. You have not provided any information that
would let anyone diagnose your problem, but making random symlinks
in /usr/lib64 doesn't sound like the right path to a solution.

regards, tom lane

#3Rob Sargent
robjsargent@gmail.com
In reply to: Tom Lane (#2)
Re: building 9.1 on suse-11.4 (64bit)

On 06/21/2011 06:49 PM, Tom Lane wrote:

Rob Sargent <robjsargent@gmail.com> writes:

Seems to me a lot of the needed standard libraries are in '/lib64' and
the linker isn't looking for them there? So far I've hit libreadline
and libz. Do I just keep making the sim-links into /usr/lib64?

Most of the required libraries are in /lib64 on my Fedora box, too,
and it works just fine. You have not provided any information that
would let anyone diagnose your problem, but making random symlinks
in /usr/lib64 doesn't sound like the right path to a solution.

regards, tom lane

Here's what I hope is relevant:

gcc --version
gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Copyright (C) 2010 Free Software Foundation, Inc.

Here's my config call:

./configure --with-python --with-openssl --with-ldap --with-ossp-uuid
--with-libxml --with-libxslt --enable-debug --prefix=/opt/PostgreSQL/9.1

The tail of config.log follows. As I confessed, libreadline had to be
simlinked into /usr/lib64, then I hit libz (as this log shows) and
started to doubt myself (even more).

configure:8316: checking for library containing readline
configure:8358: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lreadline -lcrypt -ldl -lm >&5
configure:8365: $? = 0
configure:8405: result: -lreadline
configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:
cannot find -lz
collect2: ld returned 1 exit status
configure:8474: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "9.1beta2"
| #define PACKAGE_STRING "PostgreSQL 9.1beta2"
| #define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
| #define PG_VERSION "9.1beta2"
| #define PG_MAJORVERSION "9.1"
| #define USE_INTEGER_DATETIMES 1
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define BLCKSZ 8192
| #define RELSEG_SIZE 131072
| #define XLOG_BLCKSZ 8192
| #define XLOG_SEG_SIZE (16 * 1024 * 1024)
| #define ENABLE_THREAD_SAFETY 1
| #define PG_KRB_SRVNAM "postgres"
| #define USE_LDAP 1
| #define USE_SSL 1
| #define USE_LIBXML 1
| #define USE_LIBXSLT 1
| #define HAVE_LIBM 1
| #define HAVE_LIBREADLINE 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char inflate ();
| int
| main ()
| {
| return inflate ();
| ;
| return 0;
| }
configure:8495: result: no
configure:8508: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rob Sargent (#3)
Re: building 9.1 on suse-11.4 (64bit)

Rob Sargent <robjsargent@gmail.com> writes:

The tail of config.log follows. As I confessed, libreadline had to be
simlinked into /usr/lib64, then I hit libz (as this log shows) and
started to doubt myself (even more).

configure:8316: checking for library containing readline
configure:8358: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lreadline -lcrypt -ldl -lm >&5
configure:8365: $? = 0
configure:8405: result: -lreadline
configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:
cannot find -lz
collect2: ld returned 1 exit status

Hmph. That link command is indistinguishable from the successful call on
my Fedora box:

configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
configure:8474: $? = 0
configure:8495: result: yes

[ pokes around for a bit... ] Oh, wait a minute:

$ ls -l /usr/lib64/libreadline.so
lrwxrwxrwx. 1 root root 28 Oct 1 2010 /usr/lib64/libreadline.so -> ../../lib64/libreadline.so.6*
$ rpm -qf /usr/lib64/libreadline.so
readline-devel-6.1-2.fc13.x86_64

If SUSE's packaging policies are like Red Hat's, your problem is that
you neglected to install readline-devel, zlib-devel, and so on. You
would probably have twigged to this after configure started complaining
that the .h files weren't there either ...

regards, tom lane

#5Rob Sargent
robjsargent@gmail.com
In reply to: Tom Lane (#4)
Re: building 9.1 on suse-11.4 (64bit)

Tom Lane wrote:

Rob Sargent <robjsargent@gmail.com> writes:

The tail of config.log follows. As I confessed, libreadline had to be
simlinked into /usr/lib64, then I hit libz (as this log shows) and
started to doubt myself (even more).

configure:8316: checking for library containing readline
configure:8358: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lreadline -lcrypt -ldl -lm >&5
configure:8365: $? = 0
configure:8405: result: -lreadline
configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:
cannot find -lz
collect2: ld returned 1 exit status

Hmph. That link command is indistinguishable from the successful call on
my Fedora box:

configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
configure:8474: $? = 0
configure:8495: result: yes

[ pokes around for a bit... ] Oh, wait a minute:

$ ls -l /usr/lib64/libreadline.so
lrwxrwxrwx. 1 root root 28 Oct 1 2010 /usr/lib64/libreadline.so -> ../../lib64/libreadline.so.6*
$ rpm -qf /usr/lib64/libreadline.so
readline-devel-6.1-2.fc13.x86_64

If SUSE's packaging policies are like Red Hat's, your problem is that
you neglected to install readline-devel, zlib-devel, and so on. You
would probably have twigged to this after configure started complaining
that the .h files weren't there either ...

regards, tom lane

Roger, wilco.

Much appreciated.

Note to self: finish rebuilding ones dev. env. afore building needed
foss parts

#6Rob Sargent
robjsargent@gmail.com
In reply to: Rob Sargent (#3)
Re: building 9.1 on suse-11.4 (64bit)

On 06/21/2011 06:58 PM, Rob Sargent wrote:

On 06/21/2011 06:49 PM, Tom Lane wrote:

Rob Sargent <robjsargent@gmail.com> writes:

Seems to me a lot of the needed standard libraries are in '/lib64' and
the linker isn't looking for them there? So far I've hit libreadline
and libz. Do I just keep making the sim-links into /usr/lib64?

Most of the required libraries are in /lib64 on my Fedora box, too,
and it works just fine. You have not provided any information that
would let anyone diagnose your problem, but making random symlinks
in /usr/lib64 doesn't sound like the right path to a solution.

regards, tom lane

Here's what I hope is relevant:

gcc --version
gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Copyright (C) 2010 Free Software Foundation, Inc.

Here's my config call:

./configure --with-python --with-openssl --with-ldap --with-ossp-uuid
--with-libxml --with-libxslt --enable-debug --prefix=/opt/PostgreSQL/9.1

The tail of config.log follows. As I confessed, libreadline had to be
simlinked into /usr/lib64, then I hit libz (as this log shows) and
started to doubt myself (even more).

configure:8316: checking for library containing readline
configure:8358: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lreadline -lcrypt -ldl -lm >&5
configure:8365: $? = 0
configure:8405: result: -lreadline
configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:
cannot find -lz
collect2: ld returned 1 exit status
configure:8474: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "9.1beta2"
| #define PACKAGE_STRING "PostgreSQL 9.1beta2"
| #define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
| #define PG_VERSION "9.1beta2"
| #define PG_MAJORVERSION "9.1"
| #define USE_INTEGER_DATETIMES 1
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define BLCKSZ 8192
| #define RELSEG_SIZE 131072
| #define XLOG_BLCKSZ 8192
| #define XLOG_SEG_SIZE (16 * 1024 * 1024)
| #define ENABLE_THREAD_SAFETY 1
| #define PG_KRB_SRVNAM "postgres"
| #define USE_LDAP 1
| #define USE_SSL 1
| #define USE_LIBXML 1
| #define USE_LIBXSLT 1
| #define HAVE_LIBM 1
| #define HAVE_LIBREADLINE 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char inflate ();
| int
| main ()
| {
| return inflate ();
| ;
| return 0;
| }
configure:8495: result: no
configure:8508: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.

Hm, ought I kick this over to an openSuse group?

Suse's package manager seems a bit off: for instance it shows
readline-devel as installed and in the Files list: the includes are correct
/usr/include/readline
chardefs.h, history.h, keymaps.h, readline.h,
rlconf.h, rlstdc.h, rltypedefs.h, tilde.h

but claims
/usr/lib64
libhistory.so, libreadline.so

and those are not in the filesystem (after I unlinked of course)

The package manager has libreadline's File list correct:
/lib64
libhistory.so.6, libreadline.so.6
but that obviously disagrees with readline-devel.

#7Rob Sargent
robjsargent@gmail.com
In reply to: Rob Sargent (#6)
Re: building 9.1 on suse-11.4 (64bit)

On 06/22/2011 10:27 AM, Rob Sargent wrote:

On 06/21/2011 06:58 PM, Rob Sargent wrote:

On 06/21/2011 06:49 PM, Tom Lane wrote:

Rob Sargent <robjsargent@gmail.com> writes:

Seems to me a lot of the needed standard libraries are in '/lib64' and
the linker isn't looking for them there? So far I've hit libreadline
and libz. Do I just keep making the sim-links into /usr/lib64?

Most of the required libraries are in /lib64 on my Fedora box, too,
and it works just fine. You have not provided any information that
would let anyone diagnose your problem, but making random symlinks
in /usr/lib64 doesn't sound like the right path to a solution.

regards, tom lane

Here's what I hope is relevant:

gcc --version
gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Copyright (C) 2010 Free Software Foundation, Inc.

Here's my config call:

./configure --with-python --with-openssl --with-ldap --with-ossp-uuid
--with-libxml --with-libxslt --enable-debug --prefix=/opt/PostgreSQL/9.1

The tail of config.log follows. As I confessed, libreadline had to be
simlinked into /usr/lib64, then I hit libz (as this log shows) and
started to doubt myself (even more).

configure:8316: checking for library containing readline
configure:8358: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lreadline -lcrypt -ldl -lm >&5
configure:8365: $? = 0
configure:8405: result: -lreadline
configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:
cannot find -lz
collect2: ld returned 1 exit status
configure:8474: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "9.1beta2"
| #define PACKAGE_STRING "PostgreSQL 9.1beta2"
| #define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
| #define PG_VERSION "9.1beta2"
| #define PG_MAJORVERSION "9.1"
| #define USE_INTEGER_DATETIMES 1
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define BLCKSZ 8192
| #define RELSEG_SIZE 131072
| #define XLOG_BLCKSZ 8192
| #define XLOG_SEG_SIZE (16 * 1024 * 1024)
| #define ENABLE_THREAD_SAFETY 1
| #define PG_KRB_SRVNAM "postgres"
| #define USE_LDAP 1
| #define USE_SSL 1
| #define USE_LIBXML 1
| #define USE_LIBXSLT 1
| #define HAVE_LIBM 1
| #define HAVE_LIBREADLINE 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char inflate ();
| int
| main ()
| {
| return inflate ();
| ;
| return 0;
| }
configure:8495: result: no
configure:8508: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.

Hm, ought I kick this over to an openSuse group?

Suse's package manager seems a bit off: for instance it shows
readline-devel as installed and in the Files list: the includes are correct
/usr/include/readline
chardefs.h, history.h, keymaps.h, readline.h,
rlconf.h, rlstdc.h, rltypedefs.h, tilde.h

but claims
/usr/lib64
libhistory.so, libreadline.so

and those are not in the filesystem (after I unlinked of course)

The package manager has libreadline's File list correct:
/lib64
libhistory.so.6, libreadline.so.6
but that obviously disagrees with readline-devel.

Hrmph, I found a config.log in my 9.0.3 build that reported the same
readline problem. Now, if I could only remember how I dealt with
that... I've tried gnu's readline but that had missing dependencies of
its own.

This close to symlinking my way out :(

#8Rob Sargent
robjsargent@gmail.com
In reply to: Rob Sargent (#6)
Re: building 9.1 on suse-11.4 (64bit) - EOF

On 06/22/2011 10:27 AM, Rob Sargent wrote:

On 06/21/2011 06:58 PM, Rob Sargent wrote:

On 06/21/2011 06:49 PM, Tom Lane wrote:

Rob Sargent <robjsargent@gmail.com> writes:

Seems to me a lot of the needed standard libraries are in '/lib64' and
the linker isn't looking for them there? So far I've hit libreadline
and libz. Do I just keep making the sim-links into /usr/lib64?

Most of the required libraries are in /lib64 on my Fedora box, too,
and it works just fine. You have not provided any information that
would let anyone diagnose your problem, but making random symlinks
in /usr/lib64 doesn't sound like the right path to a solution.

regards, tom lane

Here's what I hope is relevant:

gcc --version
gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Copyright (C) 2010 Free Software Foundation, Inc.

Here's my config call:

./configure --with-python --with-openssl --with-ldap --with-ossp-uuid
--with-libxml --with-libxslt --enable-debug --prefix=/opt/PostgreSQL/9.1

The tail of config.log follows. As I confessed, libreadline had to be
simlinked into /usr/lib64, then I hit libz (as this log shows) and
started to doubt myself (even more).

configure:8316: checking for library containing readline
configure:8358: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lreadline -lcrypt -ldl -lm >&5
configure:8365: $? = 0
configure:8405: result: -lreadline
configure:8432: checking for inflate in -lz
configure:8467: gcc -o conftest -O2 -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wformat-security -fno-strict-aliasing -fwrapv -g -D_GNU_SOURCE
conftest.c -lz -lreadline -lcrypt -ldl -lm >&5
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld:
cannot find -lz
collect2: ld returned 1 exit status
configure:8474: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "9.1beta2"
| #define PACKAGE_STRING "PostgreSQL 9.1beta2"
| #define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org"
| #define PG_VERSION "9.1beta2"
| #define PG_MAJORVERSION "9.1"
| #define USE_INTEGER_DATETIMES 1
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define BLCKSZ 8192
| #define RELSEG_SIZE 131072
| #define XLOG_BLCKSZ 8192
| #define XLOG_SEG_SIZE (16 * 1024 * 1024)
| #define ENABLE_THREAD_SAFETY 1
| #define PG_KRB_SRVNAM "postgres"
| #define USE_LDAP 1
| #define USE_SSL 1
| #define USE_LIBXML 1
| #define USE_LIBXSLT 1
| #define HAVE_LIBM 1
| #define HAVE_LIBREADLINE 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char inflate ();
| int
| main ()
| {
| return inflate ();
| ;
| return 0;
| }
configure:8495: result: no
configure:8508: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.

Hm, ought I kick this over to an openSuse group?

Suse's package manager seems a bit off: for instance it shows
readline-devel as installed and in the Files list: the includes are correct
/usr/include/readline
chardefs.h, history.h, keymaps.h, readline.h,
rlconf.h, rlstdc.h, rltypedefs.h, tilde.h

but claims
/usr/lib64
libhistory.so, libreadline.so

and those are not in the filesystem (after I unlinked of course)

The package manager has libreadline's File list correct:
/lib64
libhistory.so.6, libreadline.so.6
but that obviously disagrees with readline-devel.

Not sure who or what to blame here (secure in the knowledge that I'm the
most likely culprit) but I had to
'ln -s /lib64/libreadline.so.6 /lib64/libreadline.so'
and same for libz

As a further note, the default destination of ossp-uuid is
/usr/local/lib so I added that to the configure line
(--with-libraries=/usr/local/lib).

Et viola: "All of PostgreSQL successfully made. Ready to install.
PostgreSQL installation complete."

Thanks all,