[geos-commits] r3663 - in trunk: . src

svn_geos at osgeo.org svn_geos at osgeo.org
Wed Jun 6 00:03:26 PDT 2012


Author: strk
Date: 2012-06-06 00:03:26 -0700 (Wed, 06 Jun 2012)
New Revision: 3663

Modified:
   trunk/README
   trunk/src/Makefile.am
Log:
Clarify problems with linking against C++ api (#553)

Path by Greg Troxel.

Modified: trunk/README
===================================================================
--- trunk/README	2012-05-31 19:16:51 UTC (rev 3662)
+++ trunk/README	2012-06-06 07:03:26 UTC (rev 3663)
@@ -57,6 +57,15 @@
 Using the C++ interface (discouraged)
 -------------------------------------
 
+NB: The C++ interface should not be used directly; the geos project
+views it as a bug for another program to use the C++ interface or even
+to directly link against the C++ library.  The C++ library name will
+change on every minor release because it is too hard to know if there
+have been ABI changes.  (The C libary uses the C++ interface, but the
+C library follows normal ABI-change-sensitive versioning, so programs
+that link only against the C library should work without relinking
+when geos is upgraded.)
+
 To compile programs against the C++ lib:
 
   CFLAGS += `geos-config --cflags`

Modified: trunk/src/Makefile.am
===================================================================
--- trunk/src/Makefile.am	2012-05-31 19:16:51 UTC (rev 3662)
+++ trunk/src/Makefile.am	2012-06-06 07:03:26 UTC (rev 3663)
@@ -21,6 +21,10 @@
 
 lib_LTLIBRARIES = libgeos.la
 
+# libgeos uses -release because it is not feasible to know if the ABI
+# has changed between releases; the project chooses not to expend the
+# effort to determine this because depending programs should not be
+# using the C++ library.
 libgeos_la_LDFLAGS = \
     -release @VERSION_MAJOR at .@VERSION_MINOR at .@VERSION_PATCH@ \
     -no-undefined



More information about the geos-commits mailing list