[fdo-internals] RE: PostgreSQL libpq.a library for Linux
Trevor Wekel
trevor_wekel at otxsystems.com
Sat Sep 11 01:42:18 EDT 2010
Ok. I can now create a build of the PostGIS Provider on Linux which contains no "ldd -r" undefined symbol errors. The second fix was easy. The dependency on the Expression Engine was not present in Providers/PostGIS/Src/Makefile.am. And Linux is so lenient that it doesn't even complain about the missing symbols until you try to *use* the library. Geez.
I would like to submit the build fixes to the FDO 3.5.0 branch and trunk. Please see http://trac.osgeo.org/fdo/ticket/694 for full details on the fixes required.
Regards,
Trevor
-----Original Message-----
From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Trevor Wekel
Sent: September 10, 2010 6:34 PM
To: FDO Internals Mail List
Subject: [fdo-internals] RE: PostgreSQL libpq.a library for Linux
Thought I would post a follow up on this one. I downloaded source for PostgreSQL 8.4.2 and built it with the default configure settings. Libpq.a comes out at around 164k and libecpg.a comes out at 91k. I tried building with the new static libraries and the undefined symbol errors have gone away. Look as though we have "odd" static libraries in Subversion.
However, when I build the final shared library for libPostGISProvider-3.5.0.so I get the following undefined symbols:
undefined symbol: _ZN12FdoFunctionZ6CreateEv (./libPostGISProvider-3.5.0.so)
undefined symbol: _ZN12FdoFunctionX6CreateEv (./libPostGISProvider-3.5.0.so)
undefined symbol: _ZN12FdoFunctionY6CreateEv (./libPostGISProvider-3.5.0.so)
undefined symbol: _ZN12FdoFunctionM6CreateEv (./libPostGISProvider-3.5.0.so)
Using c++filt (a name demangler on linux), the following functions are flagged. Any ideas?
FdoFunctionZ::Create()
FdoFunctionX::Create()
FdoFunctionY::Create()
FdoFunctionM::Create()
FdoExpressionEngine::GetStandardFunctions()
Other than that, the following providers are showing no undefined symbols in Linux (whew!)
libFdoMySQL-3.5.0.so
libFdoODBC-3.5.0.so
libFdoOws-3.5.0.so
libFdoPostgreSQL-3.5.0.so
libGRFPProvider-3.5.0.so
libKingOracleProvider-3.5.0.so
libOGRProvider-3.5.0.so
libPostGISProvider-3.5.0.so
libSDFProvider-3.5.0.so
libSHPProvider-3.5.0.so
libSQLiteProvider-3.5.0.so
libWFSProvider-3.5.0.so
libWMSProvider-3.5.0.so
Regards,
Trevor
-----Original Message-----
From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Trevor Wekel
Sent: September 10, 2010 11:08 AM
To: FDO Internals Mail List
Subject: [fdo-internals] PostgreSQL libpq.a library for Linux
Hello,
Does anyone recall how Thirdparty/pgsql/lib/libpq.a was generated? I am seeing a number of undefined symbol messages when running "ldd -r libPostGISProvider.so" with the FDO 3.5.0 RC1 build.
undefined symbol: PQclear (./libPostGISProvider.so)
undefined symbol: PQresultStatus (./libPostGISProvider.so)
undefined symbol: PQgetvalue (./libPostGISProvider.so)
undefined symbol: PQclear (./libPostGISProvider.so)
undefined symbol: PQresultErrorMessage (./libPostGISProvider.so)
undefined symbol: PQexec (./libPostGISProvider.so)
So I suspect there is something funky going on with libpq.a. As a side note, the current version of libpq.a is smaller than its predecessor and much smaller than the "standard" libpq.a installed on CentOS 5.4 through "yum install postgresql-devel"
http://trac.osgeo.org/fdo/browser/branches/3.5/Thirdparty/pgsql/lib/libpq.a?rev=5309 (96 kbytes)
http://trac.osgeo.org/fdo/browser/trunk/Thirdparty/pgsql/lib/libpq.a?rev=3499 (137 kbytes) /usr/lib/libpq.a from "yum install postgresql-devel" (755 kbytes)
Regards,
Trevor
More information about the fdo-internals
mailing list