Compiling 7.2.3 on RH 8.0
Folks,
For the first time, I'm trying to compile 7.2.3 on a RedHat 8.0 server.
I'm normally a SuSE user, so I've hit a bit of a wall.
I'm getting errors like this when I try to compile Postgres:
configure:5800: checking for readline
configure:5837: gcc -o conftest -O2 -L/usr/lib
conftest.c -lreadline -lcrypt -lresolv -lnsl -ldl -lm -lbsd >&5
/usr/lib/libreadline.so: undefined reference to `tgetnum'
/usr/lib/libreadline.so: undefined reference to `tgoto'
/usr/lib/libreadline.so: undefined reference to `tgetflag'
/usr/lib/libreadline.so: undefined reference to `BC'
/usr/lib/libreadline.so: undefined reference to `tputs'
/usr/lib/libreadline.so: undefined reference to `PC'
/usr/lib/libreadline.so: undefined reference to `tgetent'
/usr/lib/libreadline.so: undefined reference to `UP'
/usr/lib/libreadline.so: undefined reference to `tgetstr'
These are the same sort of errors reported by David Busby about a month
ago; however, I tried his solution (manipulating --with-libs) and it
didn't make a difference.
Suggestions, please?
I do have libreadline4.3-3, libtermcap, ncurses, and devel rpms for all
installed. Help!
Thanks,
Josh
On Thursday 23 January 2003 20:26, Josh Berkus wrote:
For the first time, I'm trying to compile 7.2.3 on a RedHat 8.0 server.
I'm normally a SuSE user, so I've hit a bit of a wall.
Suggestions, please?
I do have libreadline4.3-3, libtermcap, ncurses, and devel rpms for all
installed. Help!
One question: is there a particular reason not to use the 7.2.3 RPM's for Red
Hat 8.0?
Now, going back to my Red Hat 8.0 7.2.3 build, I also see those errors.
However, readline is working and has been linked into psql. An excerpt from
my build log:
checking how to link an embedded Python application...
-L/usr/lib/python2.2/config
-ldl -lpthread -lutil -lm -lpython2.2
checking for readline... yes (-lreadline -ltermcap)
checking for library containing using_history... none required
checking for main in -lbsd... yes
Now, config.log from the same area:
configure:3288: checking for readline
configure:3310: gcc -o conftest -O2 -march=i386 -mcpu=i686
-I/usr/kerberos/inclu
de -L/usr/kerberos/lib conftest.c -lreadline 1>&5
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined
referenc
e to `tgetnum'
[snip]
configure:3310: gcc -o conftest -O2 -march=i386 -mcpu=i686
-I/usr/kerberos/inclu
de -L/usr/kerberos/lib conftest.c -lreadline -ltermcap 1>&5
configure:3349: checking for library containing using_history
configure:3367: gcc -o conftest -O2 -march=i386 -mcpu=i686
-I/usr/kerberos/inclu
de -L/usr/kerberos/lib conftest.c -lreadline -ltermcap 1>&5
configure:3416: checking for main in -lbsd
configure:3431: gcc -o conftest -O2 -march=i386 -mcpu=i686
-I/usr/kerberos/inclu
de -L/usr/kerberos/lib conftest.c -lbsd -lreadline -ltermcap 1>&5
You have libtermcap-devel installed, correct (you said as much; just
double-checking)?
More information:
[lowen@localhost bin]$ pg_config --configure
--enable-locale --with-CXX --prefix=/usr --disable-rpath --with-perl
--enable-multibyte --with-tcl --with-odbc --enable-syslog --with-python
--with-openssl --with-pam --with-krb5=/usr/kerberos --enable-nls
--sysconfdir=/etc/pgsql --mandir=/usr/share/man --docdir=/usr/share/doc
--includedir=/usr/include --datadir=/usr/share/pgsql
[lowen@localhost bin]$ ldd psql
libpq.so.2 => /usr/lib/libpq.so.2 (0x4002a000)
libpam.so.0 => /lib/libpam.so.0 (0x4003e000)
libssl.so.2 => /lib/libssl.so.2 (0x40046000)
libcrypto.so.2 => /lib/libcrypto.so.2 (0x40076000)
libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x4014a000)
libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x401a7000)
libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x401b7000)
libz.so.1 => /usr/lib/libz.so.1 (0x401ba000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x401c8000)
libresolv.so.2 => /lib/libresolv.so.2 (0x401f5000)
libnsl.so.1 => /lib/libnsl.so.1 (0x40207000)
libdl.so.2 => /lib/libdl.so.2 (0x4021c000)
libm.so.6 => /lib/i686/libm.so.6 (0x4021f000)
libreadline.so.4 => /usr/lib/libreadline.so.4 (0x40242000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4026e000)
libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
[lowen@localhost bin]$rpm -qa|grep postg
postgresql-perl-7.2.3-2PGDG
postgresql-test-7.2.3-2PGDG
postgresql-7.2.3-2PGDG
postgresql-libs-7.2.3-2PGDG
postgresql-contrib-7.2.3-2PGDG
postgresql-server-7.2.3-2PGDG
postgresql-devel-7.2.3-2PGDG
[lowen@localhost bin]$
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
Lamar,
One question: is there a particular reason not to use the 7.2.3 RPM's
for Red
Hat 8.0?
Yes. I have to make two small changes to the Postgres source code.
-Josh
On Thursday 23 January 2003 23:04, Josh Berkus wrote:
One question: is there a particular reason not to use the 7.2.3 RPM's
for Red
Hat 8.0?
Yes. I have to make two small changes to the Postgres source code.
Ah. Any part of the rest help at all?
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
"Josh Berkus" <josh@agliodbs.com> writes:
For the first time, I'm trying to compile 7.2.3 on a RedHat 8.0 server.
I'm normally a SuSE user, so I've hit a bit of a wall.
I'm getting errors like this when I try to compile Postgres:
It works out-of-the-box for me on a vanilla RH 8.0 installation.
You do need libtermcap, but that's installed by default, AFAIK.
configure:5800: checking for readline
configure:5837: gcc -o conftest -O2 -L/usr/lib
conftest.c -lreadline -lcrypt -lresolv -lnsl -ldl -lm -lbsd >&5
/usr/lib/libreadline.so: undefined reference to `tgetnum'
Hm, you sure this is 7.2.3's configure? The line numbers seem way off.
FWIW, here is the section from config.log showing configure probing for
readline libraries, as just run from 7.2-branch sources on my RH 8.0
box. The first test without -ltermcap fails, but the try with it succeeds.
...
configure:3151: checking for perl
configure:3288: checking for readline
configure:3310: gcc -o conftest -O2 -g conftest.c -lreadline 1>&5
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `tgetnum'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `tgoto'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `tgetflag'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `BC'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `tputs'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `PC'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `tgetent'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `UP'
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../libreadline.so: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
configure: failed program was:
#line 3299 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char readline();
int main() {
readline()
; return 0; }
configure:3310: gcc -o conftest -O2 -g conftest.c -ledit 1>&5
/usr/bin/ld: cannot find -ledit
collect2: ld returned 1 exit status
configure: failed program was:
#line 3299 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char readline();
int main() {
readline()
; return 0; }
configure:3310: gcc -o conftest -O2 -g conftest.c -lreadline -ltermcap 1>&5
configure:3349: checking for library containing using_history
...
regards, tom lane
Tom,
configure:5800: checking for readline
configure:5837: gcc -o conftest -O2 -L/usr/lib
conftest.c -lreadline -lcrypt -lresolv -lnsl -ldl -lm -lbsd >&5
/usr/lib/libreadline.so: undefined reference to `tgetnum'Hm, you sure this is 7.2.3's configure? The line numbers seem way
off.
It's not. I was quoting another e-mail that seemed to report the same
problem. The machine I'm compiling on does not have a GUI and there
was no easy way to paste its config.log into an e-mail. Sorry to
confuse you!
-Josh Berkus
On Friday 24 January 2003 12:35, Josh Berkus wrote:
It's not. I was quoting another e-mail that seemed to report the same
problem. The machine I'm compiling on does not have a GUI and there
was no easy way to paste its config.log into an e-mail. Sorry to
confuse you!
mail -s "Here is the faulty config.log" recipient@some.where < config.log
--
Lamar Owen
WGCR Internet Radio
1 Peter 4:11