Compiling 7.2.3 on RH 8.0

Started by Josh Berkusabout 23 years ago7 messagesgeneral
Jump to latest
#1Josh Berkus
josh@agliodbs.com

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

#2Lamar Owen
lamar.owen@wgcr.org
In reply to: Josh Berkus (#1)
Re: Compiling 7.2.3 on RH 8.0

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

#3Josh Berkus
josh@agliodbs.com
In reply to: Lamar Owen (#2)
Re: Compiling 7.2.3 on RH 8.0

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

#4Lamar Owen
lamar.owen@wgcr.org
In reply to: Josh Berkus (#3)
Re: Compiling 7.2.3 on RH 8.0

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

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Josh Berkus (#1)
Re: Compiling 7.2.3 on RH 8.0

"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

#6Josh Berkus
josh@agliodbs.com
In reply to: Tom Lane (#5)
Re: Compiling 7.2.3 on RH 8.0

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

#7Lamar Owen
lamar.owen@wgcr.org
In reply to: Josh Berkus (#6)
Re: Compiling 7.2.3 on RH 8.0

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