[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