Thread: failing to compile v. 9.0.1 on debian squeeze with readline
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.
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
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
Attachment
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
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 >
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\*
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