[postgis-users] OpenBSd installation problem

109 views
Skip to first unread message

Marcelo Bacha

unread,
Jul 1, 2013, 4:17:38 PM7/1/13
to postgi...@lists.osgeo.org
Hi,

This is my first posting, I´m new to Postgis. I´ve seen similar problems related in lists all around, but this one, I couldn´t manage to solve.

I have an OpenBSD 5.3 server, with PostgreSQL 9.2.4 on it, which always worked fine. I have to transfer some geospatial databases from a Windows server, so I downloaded Postgis from the source (I needed the latest versions), configured, compiled & installed it.
Everything seems to be fine, but when I try to create the postgis extension (with raster support) on psql:

  postgres=# CREATE EXTENSION postgis;
  ERROR:  could not load library "/usr/local/pgsql/lib/rtpostgis-2.2.so": dlopen (/usr/local/pgsql/lib/rtpostgis-2.2.so) failed: Cannot load specified object

The paths seems all to be OK:

  # ls -l /usr/local/pgsql/lib/*post*
  -rwxr-xr-x  1 root  wheel  1276039 Jul  1 16:50 /usr/local/pgsql/lib/postgis-2.2.so
  -rwxr-xr-x  1 root  wheel  1208861 Jul  1 16:50 /usr/local/pgsql/lib/rtpostgis-2.2.so

(I know it´s the development, and not the stable release, but the results are the same with all other releases.)

When I try to preload the rtpostgis shared object setting the LD_PRELOAD environment variable, I get this on psql:

  $ psql                   
  psql:/usr/local/pgsql/lib/rtpostgis-2.2.so: undefined symbol 'CurrentMemoryContext'
  psql:/usr/local/pgsql/lib/rtpostgis-2.2.so: undefined symbol 'SPI_tuptable'
  psql:/usr/local/pgsql/lib/rtpostgis-2.2.so: undefined symbol 'SPI_result'
  psql:/usr/local/pgsql/lib/rtpostgis-2.2.so: undefined symbol 'InterruptPending'
  psql:/usr/local/pgsql/lib/rtpostgis-2.2.so: undefined symbol 'SPI_processed'
  psql (9.2.4)

Didn´t find any further useful info setting LD_DEBUG (I may list the output if necessary, anyway).

Any hint on how to solve this? I´m running out of ideas.

Thanks in advance,
Marcelo

Bborie Park

unread,
Jul 1, 2013, 4:19:52 PM7/1/13
to PostGIS Users Discussion
Marcelo,

Those missing symbols are all from PostgreSQL. You'll want to make
sure the PostgreSQL libs and dev files are provided.

-bborie
> _______________________________________________
> postgis-users mailing list
> postgi...@lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users
>
_______________________________________________
postgis-users mailing list
postgi...@lists.osgeo.org
http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users

Greg Troxel

unread,
Jul 2, 2013, 10:18:32 AM7/2/13
to Marcelo Bacha, postgi...@lists.osgeo.org
This smells like issues with not having RPATH set in various libraries.

I have been building on NetBSD and not seeing this, but I think I have
LDFLAGS set to -L and -R both for /usr/pkg/lib and such. (Sorry, the
details are paged out of my brain because Copious Spare Time for postgis
has been lacking lately.)

Marcelo Bacha

unread,
Jul 10, 2013, 3:32:16 PM7/10/13
to PostGIS Users Discussion
Thanks Bborie.

I went back to PostgreSQL, to check the warnings from compilation. I Corrected a couple of things, applied a recent patch for the configure properly recognize sys/ucred.h, and so on, but nothing changed the situation.
Here´s how it´s configured:

./configure --enable-depend --with-openssl --with-libxml --with-libxslt --with-perl --enable-debug --disable-thread-safety

I´m running out of ideas...

Best,
Marcelo

dustymugs

unread,
Jul 10, 2013, 4:06:20 PM7/10/13
to postgi...@lists.osgeo.org
Marcelo,

See if rtpostgis-2.2.so can find the PostgreSQL libs.

ldd /usr/local/pgsql/lib/rtpostgis-2.2.so

-bborie

Marcelo Bacha

unread,
Jul 10, 2013, 5:08:05 PM7/10/13
to PostGIS Users Discussion
Here´s the output:

# ldd /usr/local/pgsql/lib/rtpostgis-2.2.so 
/usr/local/pgsql/lib/rtpostgis-2.2.so:
        Start    End      Type Open Ref GrpRef Name
        0ee98000 2eebd000 dlib 1    0   0      /usr/local/pgsql/lib/rtpostgis-2.2.so
        08a43000 28cec000 rlib 0    1   0      /usr/local/lib/libgdal.so.18.0
        041ef000 241f9000 rlib 0    2   0      /usr/local/lib/libgeos_c.so.8.8
        003f6000 20400000 rlib 0    1   0      /usr/local/lib/libproj.so.7.0
        0e834000 2e838000 rlib 0    1   0      /usr/local/lib/libjson.so.1.1
        0a36a000 2a391000 rlib 0    2   0      /usr/local/lib/libxml2.so.14.0
        06045000 2604c000 rlib 0    5   0      /usr/lib/libz.so.4.1
        0fce8000 2fdc8000 rlib 0    5   0      /usr/local/lib/libiconv.so.6.0
        059df000 259e8000 rlib 0    9   0      /usr/lib/libm.so.7.1
        064e4000 26526000 rlib 0    2   0      /usr/local/lib/libgeos.so
        0dfef000 2dffd000 rlib 0    1   0      /usr/lib/libsqlite3.so.21.0
        07bdf000 27be4000 rlib 0    1   0      /usr/lib/libexpat.so.10.0
        007b8000 207c7000 rlib 0    1   0      /usr/local/lib/libjasper.so.2.1
        0ae63000 2ae67000 rlib 0    1   0      /usr/local/lib/libgif.so.5.4
        077d1000 277d7000 rlib 0    1   0      /usr/local/lib/libjpeg.so.64.0
        0978e000 29795000 rlib 0    1   0      /usr/local/lib/libpng.so.15.14
        09594000 2959c000 rlib 0    1   0      /usr/local/lib/libpq.so.5.5
        00a2d000 20a39000 rlib 0    1   0      /usr/local/lib/libcurl.so.23.0
        05f63000 25f8f000 rlib 0    2   0      /usr/local/lib/libidn.so.17.0
        02e03000 22e07000 rlib 0    3   0      /usr/local/lib/libintl.so.6.0
        0ab0d000 2ab1a000 rlib 0    3   0      /usr/lib/libssl.so.19.0
        0d71c000 2d75b000 rlib 0    3   0      /usr/lib/libcrypto.so.22.0
        094ce000 294fc000 rlib 0    3   0      /usr/lib/libstdc++.so.55.0

Indeed, there´s no shared object from /usr/local/pgsql/lib, is this correct?

Anyway, I´ve included this path at the /etc/rc.conf shlib_dirs variable, so rc execute the proper ldconfig command, which is just OK:

# ldconfig -r | grep pgsql
        search directories: /usr/lib:/usr/X11R6/lib:/usr/local/lib:/usr/local/pgsql/lib
        328:-lpgtypes.3.3 => /usr/local/pgsql/lib/libpgtypes.so.3.3
        329:-lecpg.6.4 => /usr/local/pgsql/lib/libecpg.so.6.4
        331:-lecpg_compat.3.4 => /usr/local/pgsql/lib/libecpg_compat.so.3.4

Marcelo



dustymugs

unread,
Jul 10, 2013, 5:48:09 PM7/10/13
to postgi...@lists.osgeo.org
After reading back through your initial email, ignore the missing
PostgreSQL symbols as the problem really is the loading of
rtpostgis-2.2.so in PostgreSQL.

Based upon the ldd output, all the libraries that your rtpostgis-2.2.so
library depends on is found.

I don't believe my advice will be of much value as I haven't used *BSD
in a very long time...

-bborie
Reply all
Reply to author
Forward
0 new messages