Обсуждение: failing to compile v. 9.0.1 on debian squeeze with readline

Поиск
Список
Период
Сортировка

failing to compile v. 9.0.1 on debian squeeze with readline

От
Imre Oolberg
Дата:
Hi!

I am trying to compile PostgreSQL v. 9.0.1 on coming Debian Squeeze (as
installed with Debian Installer 6.0 Beta1 release,
http://www.debian.org/devel/debian-installer/) amd64 doing following steps

1. install required dependecies (i have done similarly on debian lenny
like apt-get build-dep postgresql-8.3 and compiling successfully v. 8.4.5)

# apt-get build-dep postgresql-8.4

2. run configure

$ ./configure --prefix=/tmp/postgresql 1>/tmp/1.log 2>/tmp/2.log

3. check sensitive parameters' values

$ egrep "for optreset|for setproctitle" /tmp/1.log
checking for setproctitle... yes
checking for optreset... yes

4. compile

$ make
...
gcc -O2 -Wall -Wmissing-prototypes ...
...
postmaster/postmaster.o: In function `PostmasterMain':
postmaster.c:(.text+0x420c): undefined reference to `optreset'
tcop/postgres.o: In function `process_postgres_switches':
postgres.c:(.text+0x122b): undefined reference to `optreset'
utils/misc/ps_status.o: In function `set_ps_display':
ps_status.c:(.text+0xd6): undefined reference to `setproctitle'
collect2: ld returned 1 exit status
make[2]: *** [postgres] Error 1
make[2]: Leaving directory `/opt/postgres/tmp/postgresql-9.0.1/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/opt/postgres/tmp/postgresql-9.0.1/src'
make: *** [all] Error 2

A workaround seems to ./configure with '--without-readline' (and the
above mentioned parameter values get st to 'no') but I would like to ask

1. does leaving readline out affect only client side, i.e. psql program
from the result of the compilation
2. if it is possible to use PG v. 9.x on Debian Squeeze while having PG
compiled with readline support (or something functionally similar)

I am not sure when exactly new behavior came about but sometimes this
summer it was possible to have Debian Squeeze of that time and v. 9.
beta compiled with readline successfully.


Best regards,

Imre

PS The same happens with v. 9.1alpha2.

Re: failing to compile v. 9.0.1 on debian squeeze with readline

От
Tom Lane
Дата:
Imre Oolberg <imre@auul.pri.ee> writes:
> $ make
> ...
> gcc -O2 -Wall -Wmissing-prototypes ...
> ...
> postmaster/postmaster.o: In function `PostmasterMain':
> postmaster.c:(.text+0x420c): undefined reference to `optreset'
> tcop/postgres.o: In function `process_postgres_switches':
> postgres.c:(.text+0x122b): undefined reference to `optreset'
> utils/misc/ps_status.o: In function `set_ps_display':
> ps_status.c:(.text+0xd6): undefined reference to `setproctitle'
> collect2: ld returned 1 exit status
> make[2]: *** [postgres] Error 1
> make[2]: Leaving directory `/opt/postgres/tmp/postgresql-9.0.1/src/backend'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/opt/postgres/tmp/postgresql-9.0.1/src'
> make: *** [all] Error 2

> A workaround seems to ./configure with '--without-readline' (and the
> above mentioned parameter values get st to 'no') but I would like to ask

Maybe you need to lobby the Debian folks to revert to a less broken
version of libreadline.  It surely has got no business exporting either
of those symbols.

            regards, tom lane

Re: failing to compile v. 9.0.1 on debian squeeze with readline

От
Devrim GÜNDÜZ
Дата:
On Sun, 2010-12-05 at 17:49 -0500, Tom Lane wrote:
> Maybe you need to lobby the Debian folks to revert to a less broken
> version of libreadline.  It surely has got no business exporting
> either of those symbols.

Could it be libreadline5 vs libreadline 6?
--
Devrim GÜNDÜZ
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
PostgreSQL RPM Repository: http://yum.pgrpms.org
Community: devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org  Twitter: http://twitter.com/devrimgunduz

Вложения

Re: failing to compile v. 9.0.1 on debian squeeze with readline

От
Tom Lane
Дата:
Devrim =?ISO-8859-1?Q?G=DCND=DCZ?= <devrim@gunduz.org> writes:
> On Sun, 2010-12-05 at 17:49 -0500, Tom Lane wrote:
>> Maybe you need to lobby the Debian folks to revert to a less broken
>> version of libreadline.  It surely has got no business exporting
>> either of those symbols.

> Could it be libreadline5 vs libreadline 6?

Fedora has been shipping readline 6.1 for awhile, and I see no such
misbehavior there.

            regards, tom lane

Re: failing to compile v. 9.0.1 on debian squeeze with readline

От
Imre Oolberg
Дата:
Hi!

Sorry for the noise, it was mostly my bad, people told me i needed to
have libreadline6-dev package installed, from there come among other
things two links

lrwxrwxrwx 1 root root 20 Dec 6 09:57 /usr/lib/libhistory.so ->
/lib/libhistory.so.6
lrwxrwxrwx 1 root root 21 Dec 6 09:57 /usr/lib/libreadline.so ->
/lib/libreadline.so.6

And as a result the optreset and setproctitle parameters get set to 'no'.

Although during apt-get build-dep postgresql-8.3 on lenny (v. 5.0) it
installs libreadline5-dev but on squeeze (v. 6.0) neither of the -dev
packages gets installed (need to lobby debian package managers on that!).

Thanks for your replies!


Imre


Tom Lane wrote:
> Devrim =?ISO-8859-1?Q?G=DCND=DCZ?= <devrim@gunduz.org> writes:
>
>> On Sun, 2010-12-05 at 17:49 -0500, Tom Lane wrote:
>>
>>> Maybe you need to lobby the Debian folks to revert to a less broken
>>> version of libreadline.  It surely has got no business exporting
>>> either of those symbols.
>>>
>
>
>> Could it be libreadline5 vs libreadline 6?
>>
>
> Fedora has been shipping readline 6.1 for awhile, and I see no such
> misbehavior there.
>
>             regards, tom lane
>


Re: failing to compile v. 9.0.1 on debian squeeze with readline

От
Peter Eisentraut
Дата:
On mån, 2010-12-06 at 00:29 +0200, Imre Oolberg wrote:
> 4. compile
>
> $ make
> ...
> gcc -O2 -Wall -Wmissing-prototypes ...
> ...
> postmaster/postmaster.o: In function `PostmasterMain':
> postmaster.c:(.text+0x420c): undefined reference to `optreset'
> tcop/postgres.o: In function `process_postgres_switches':
> postgres.c:(.text+0x122b): undefined reference to `optreset'
> utils/misc/ps_status.o: In function `set_ps_display':
> ps_status.c:(.text+0xd6): undefined reference to `setproctitle'
> collect2: ld returned 1 exit status
> make[2]: *** [postgres] Error 1
> make[2]: Leaving directory
> `/opt/postgres/tmp/postgresql-9.0.1/src/backend'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/opt/postgres/tmp/postgresql-9.0.1/src'
> make: *** [all] Error 2
>
> A workaround seems to ./configure with '--without-readline' (and the
> above mentioned parameter values get st to 'no') but I would like to
> ask

I compile PostgreSQL on Debian squeeze about 10 times a day and I have
never seen that.

Could you show the output of

dpkg -l \*readline\*



Re: failing to compile v. 9.0.1 on debian squeeze with readline

От
Imre Oolberg
Дата:
Peter Eisentraut wrote:
> I compile PostgreSQL on Debian squeeze about 10 times a day and I have
> never seen that.
>
> Could you show the output of
>
> dpkg -l \*readline\*
>
>
As i wrote my problem was solved after installing libreadline6-dev (it
was stupid of me not to check that in the first place), now i have

# dpkg -l \*readline\*
...
un  libreadline-common            <none>                        (no
description available)
un  libreadline-dev               <none>                        (no
description available)
un  libreadline4                  <none>                        (no
description available)
ii  libreadline5                  5.2-7                         GNU
readline and history libraries, run-time libraries
un  libreadline5-dev              <none>                        (no
description available)
ii  libreadline6                  6.1-3                         GNU
readline and history libraries, run-time libraries
ii  libreadline6-dev              6.1-3                         GNU
readline and history libraries, development files
un  libterm-readline-gnu-perl     <none>                        (no
description available)
un  libterm-readline-perl-perl    <none>                        (no
description available)
ii  readline-common               6.1-3                         GNU
readline and history libraries, common files
un  tclreadline                   <none>                        (no
description available)

Just for the record, for some reason saying

# apt-get build-dep postgrsql-8.4 (it doesnt install any
libreadline*-dev as dependency)
# apt-get source postgresql-8.4
# dpkg-buildpackage -rfakeroot

succeeds but on that system it fails compiling from source. I must admit
that i dont know that much about using computers to discuss it further
whether it is bad or good thing that i need to install manually
libreadline6-dev to compile from source. Now i am content with being
able to compile PostgreSQL from source on Squeeze and thanks for your
replies.


Imre