building 9.1 on suse-11.4 (64bit)
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,
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
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.
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
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 statusHmph. 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_64If 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
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.1The 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.
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.1The 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.hbut claims
/usr/lib64
libhistory.so, libreadline.soand 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 :(
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.1The 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.hbut claims
/usr/lib64
libhistory.so, libreadline.soand 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,