[gdal-dev] libtool numbering policy

Bas Couwenberg sebastic at xs4all.nl
Tue Jun 14 08:30:06 PDT 2016


On 2016-06-14 16:46, Even Rouault wrote:
> Le mardi 14 juin 2016 16:33:04, Bas Couwenberg a écrit :
>> On 2016-06-14 15:51, Even Rouault wrote:
>> > Le mardi 14 juin 2016 12:13:49, Bas Couwenberg a écrit :
>> >> In Debian we mark the libgdal C++ symbols and add a dependency on the
>> >> version specific virtual ABI package provided by the libgdal20 package
>> >> to all packages that use any of the C++ symbols. Most reverse
>> >> dependencies of GDAL use (some) C++ symbols, requiring a rebuild of
>> >> these packages for every new release of GDAL uploaded to Debian. Only
>> >> the gmt, imposm, mapcache, mapserver, ncl, osmium, postgis, xastir,
>> >> grass & pyosmium packages don't use any C++ symbols (10 out of 37).
>> >
>> > Side remark: I'm surprised to not see QGIS listed in the C API only
>> > users.
>> > I've never seen use of the GDAL C++ API in it.
>> > Same for Fiona & RasterIO
>> 
>> RasterIO uses several C++ classes in rasterio/_warp.pyx,
>> GDALWarpOperation & OGRCoordinateTransformation for example.
> 
> Interesting... (so in what you wrote above, I assume you've an 
> automated
> script to figure out if C++ symbols are used ?)

For the Debian package the dpkg-gensymbols utility is used to generate 
the symbols provided by libgdal. Because the C++ symbols can differ per 
architecture, separate symbols files are used for every architecture. 
The gdal-symbols.pl script [0] is used to update the symbols files for 
new releases, it includes splitting the C & C++ symbols for which it 
relies on c++filt to determine which symbols are for C++ code based on 
the diff between the c++filt output and the unmodified symbols file.

[0] 
https://anonscm.debian.org/cgit/pkg-grass/gdal.git/tree/debian/gdal-symbols.pl

To find out why fiona & rasterio were not listed among the C API only 
users, I grepped their sources for classes listed in the C++ symbols 
file for am64 [1] which revealed the "cdef cppclass" results.

[1] 
https://anonscm.debian.org/cgit/pkg-grass/gdal.git/tree/debian/libgdal20.symbols.amd64

Kind Regards,

Bas


More information about the gdal-dev mailing list