[gdal-dev] Future compatibility - plugins (C#)

Even Rouault even.rouault at mines-paris.org
Tue Jun 30 14:02:07 EDT 2009


Tomas,

Disclaimer : I'm not an expert of C# at all and I've not understood your 
preliminary paragraph about 'SportTracks and the other plugins'. The 
following explanatations are more general remarks about how a random SWIG 
GDAL binding should work regards to versioning.

Theory : The csharp binding dlls use only the "C symbols" from libgdal. As 
there is upward ABI stability for the C symbols, a csharp program compiled 
against GDAL in version X should run against the binding dlls in version X 
and a GDAL library version in Y, where Y >= X. 

Practice : Under Linux, I've just tried running the GDALInfo.exe compiled in 
1.6 branch against the gdal_csharp.dll from that 1.6 branch and libgdal.so 
from 1.7.0dev and it works. But the other way would not work : a 
gdal_csharp.dll from 1.7.0 uses symbols that have appeared in libgdal 1.7.0, 
so it cannot run against an older libgdal. There's no way to make that work 
of course : that's the concept of upward compatibility only.
I've also tried running GDALInfo.exe (1.6) against gdal_csharp.dll from 
1.7.0dev (and libgdal from 1.7.0dev) and it seemed to work, but I'm not sure 
if it would always work (don't know how C# symbols are stored and linked).

Note : for the Java bindings things would get a bit more complicated. The 
gdal.jar and libgdal_jni.so are closely coupled and you cannot definitely use 
mixed versions of them.

Not sure if all above is clear and helps.

Best regards,
Even

Le Tuesday 30 June 2009 18:38:13 Tomas R, vous avez écrit :
> Hi again, time for a new question
> First of, Q is regarding the C# environment.
>
> Trying to update my plugin to SportTracks that makes it possible for
> other plugins to the great program to make use of Gdal. Currently the
> plugin uses Gdal 1.5.1 and the plan is to move to 1.6.1
>
> There seem to not be a "soft" way to upgrade as a move to gdal 1.6.1
> will break the other plugin. Are the changes between 1.5.1 and 1.6.1 so
> great they require a break in compatibility?
> In  the future, upgrade to Gdal 1.7 will this also not be backward
> compatible? Are there anything I can do when compiling Gdal than may
> simplify the transition? Say that a plugin linked to the 1.6.1 C# dlls
> will also work with the 1.5.1 dlls? That way it will possible to roll
> out the other plugins with support of Gdal 1.6.1 and some time later go
> out with the upgrade.
>
> Suggestions, ideas, explanations why I have this problem at all!
>
> Yours
> Tomas
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev




More information about the gdal-dev mailing list