Thread: "make check" failed on 8.4.2 install
Hi, I am trying to upgrade to 8.4.2 but my usual compile from source failed $ ./configure --prefix=/usr/local/pgsql_8.4 --with-pgport=6235 --with-perl --with-openssl --with-libraries=/usr/local/ssl/lib/--with-includes=/usr/local/ssl/include/ $ make $ make check ...... ============== shutting down postmaster ============== /usr/local/install/postgresql-8.4.2/src/test/regress/./tmp_check/install//usr/local/pgsql_8.4/bin/pg_ctl: relocation error:/usr/local/install/postgresql-8.4.2/src/test/regress/./tmp_check/install//usr/local/pgsql_8.4/lib/libpq.so.5: undefinedsymbol: dlopen pg_regress: could not stop postmaster: exit code was 32512 make[2]: *** [check] Error 2 make[2]: Leaving directory `/usr/local/install/postgresql-8.4.2/src/test/regress' make[1]: *** [check] Error 2 make[1]: Leaving directory `/usr/local/install/postgresql-8.4.2/src/test' make: *** [check] Error 2 Server details: adam@testing:/usr/local/install/postgresql-8.4.2$ uname -a Linux testing 2.6.14.7 #1 SMP Fri Jan 19 11:55:40 GMT 2007 i686 unknown 8.3.5 passed ok, but the 8.4.* seem to fail on my system. Presumably i need to upgrade something else to work with 8.4.*?Does anybody have any idea which? thanks for any help adam
adam_pgsql <adam_pgsql@witneyweb.org> writes: > I am trying to upgrade to 8.4.2 but my usual compile from source failed > $ make check > ============== shutting down postmaster ============== > /usr/local/install/postgresql-8.4.2/src/test/regress/./tmp_check/install//usr/local/pgsql_8.4/bin/pg_ctl: relocation error:/usr/local/install/postgresql-8.4.2/src/test/regress/./tmp_check/install//usr/local/pgsql_8.4/lib/libpq.so.5: undefinedsymbol: dlopen That's very peculiar. It looks more like dynamic linker breakage than Postgres' fault, though. What platform is this (no, the kernel version doesn't do it for me)? What have you changed since you last built Postgres successfully? regards, tom lane
On 23 Feb 2010, at 17:41, Tom Lane wrote: > adam_pgsql <adam_pgsql@witneyweb.org> writes: >> I am trying to upgrade to 8.4.2 but my usual compile from source failed > >> $ make check >> ============== shutting down postmaster ============== >> /usr/local/install/postgresql-8.4.2/src/test/regress/./tmp_check/install//usr/local/pgsql_8.4/bin/pg_ctl: relocation error:/usr/local/install/postgresql-8.4.2/src/test/regress/./tmp_check/install//usr/local/pgsql_8.4/lib/libpq.so.5: undefinedsymbol: dlopen > > That's very peculiar. It looks more like dynamic linker breakage than > Postgres' fault, though. What platform is this (no, the kernel version > doesn't do it for me)? What have you changed since you last built > Postgres successfully? This is Debian 4.0. I haven't changed anything on that box recently. My current working version is 8.2.12. As a test I just successfully ran configure, make and make check for 8.3.8. But both a fresh tarball for 8.4.1 and 8.4.2fail with the same error. thanks adam
adam_pgsql <adam_pgsql@witneyweb.org> writes: > On 23 Feb 2010, at 17:41, Tom Lane wrote: >> That's very peculiar. It looks more like dynamic linker breakage than >> Postgres' fault, though. What platform is this (no, the kernel version >> doesn't do it for me)? What have you changed since you last built >> Postgres successfully? > This is Debian 4.0. I haven't changed anything on that box recently. My current working version is 8.2.12. > As a test I just successfully ran configure, make and make check for 8.3.8. But both a fresh tarball for 8.4.1 and 8.4.2fail with the same error. Hmph. We have several debian boxes in the buildfarm and none of them have ever showed a failure like this AFAIR: http://buildfarm.postgresql.org/cgi-bin/show_status.pl What I'd suggest is taking a close look at the link commands that build libpq.so and pg_ctl. Compare the 8.3 and 8.4 cases on your box, and also look at the make logs from the Debian buildfarm animals, to see if you can see what's being done differently. BTW, so far as I can tell in a quick look at the sources, the only explicit call of dlopen() anywhere in Postgres is in the backend, not in either pg_ctl or libpq. So you're definitely dealing with a dynamic linker foulup, not a real missing reference. regards, tom lane
On 23 Feb 2010, at 21:34, Tom Lane wrote: > adam_pgsql <adam_pgsql@witneyweb.org> writes: >> On 23 Feb 2010, at 17:41, Tom Lane wrote: >>> That's very peculiar. It looks more like dynamic linker breakage than >>> Postgres' fault, though. What platform is this (no, the kernel version >>> doesn't do it for me)? What have you changed since you last built >>> Postgres successfully? > >> This is Debian 4.0. I haven't changed anything on that box recently. My current working version is 8.2.12. > >> As a test I just successfully ran configure, make and make check for 8.3.8. But both a fresh tarball for 8.4.1 and 8.4.2fail with the same error. > > Hmph. We have several debian boxes in the buildfarm and none of them > have ever showed a failure like this AFAIR: > http://buildfarm.postgresql.org/cgi-bin/show_status.pl > > What I'd suggest is taking a close look at the link commands that build > libpq.so and pg_ctl. Compare the 8.3 and 8.4 cases on your box, and > also look at the make logs from the Debian buildfarm animals, to see if > you can see what's being done differently. > > BTW, so far as I can tell in a quick look at the sources, the only > explicit call of dlopen() anywhere in Postgres is in the backend, > not in either pg_ctl or libpq. So you're definitely dealing with a > dynamic linker foulup, not a real missing reference. I checked the output from make but couldn't see anything particular different apart from the removal of -Winline everywhere.However I have narrowed down the problem to openssl. ./configure without openssl works ok for 8.4.2, but ./configure --with-openssl --with-libraries=/usr/local/ssl/lib/ --with-includes=/usr/local/ssl/include/ still fails. The server has OpenSSL 0.9.8i installed, but upgrading to the latest OpenSSL 0.9.8l still fails. This is gcc version 2.95.4 if that helps? thanks again adam
adam_pgsql wrote: > This is gcc version 2.95.4 if that helps? It's a very old version of gcc, and also one that has never been officially released, according to the release notes. Run "aptitude show gcc-2.95" and see the description of the package. You don't want to use that as your default compiler. Debian 4 comes with gcc-4.1, which is what you should get when you install the package named gcc. Best regards, -- Daniel PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org