Thread: Compiling 7.2.3 on RH 8.0

Compiling 7.2.3 on RH 8.0

From
"Josh Berkus"
Date:
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


Re: Compiling 7.2.3 on RH 8.0

From
Lamar Owen
Date:
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


Re: Compiling 7.2.3 on RH 8.0

From
"Josh Berkus"
Date:
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

Re: Compiling 7.2.3 on RH 8.0

From
Lamar Owen
Date:
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


Re: Compiling 7.2.3 on RH 8.0

From
Tom Lane
Date:
"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

Re: Compiling 7.2.3 on RH 8.0

From
"Josh Berkus"
Date:
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

Re: Compiling 7.2.3 on RH 8.0

From
Lamar Owen
Date:
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