[Liblas-devel] Re: [SCM] liblas annotated tag, upstream/1.6.0,
created. upstream/1.6.0
Howard Butler
hobu.inc at gmail.com
Sun Feb 13 18:29:50 EST 2011
On Feb 13, 2011, at 10:22 AM, David Paleino wrote:
> On Sun, 13 Feb 2011 00:53:54 +0100, Francesco P. Lovergine wrote:
>
>> On Sat, Feb 12, 2011 at 06:51:58PM +0100, David Paleino wrote:
>>>
>> [...]
>>
>> I'm taking hobu into the loop because he kindly contacted me about 1.6
>> last month. Do you have any comments? I guess the liblas_c contains
>> the C binding while the liblas.so is C++ (?), but I could be wrong.
>
> I would've said that as well, but "objdump -x" gives mangled C++-like symbols
> for both of them:
>
> $ objdump -t liblas_c.so.2.0.0
> ...
> 0003a000 w F .text 00000021 _ZN6liblas4guidC1ERKS0_
> 0003a022 w F .text 00000005 _ZN6liblas4guidD2Ev
> 0003a022 w F .text 00000005 _ZN6liblas4guidD1Ev
> ...
>
> $ objdump -t liblas.so.2.0.0
> 000f0a12 w F .text 0000003f _ZN6liblas4guidC1ERKjRKtS4_RA8_Kh
> 000f0a52 w F .text 00000005 _ZN6liblas4guidD2Ev
> 000f0a52 w F .text 00000005 _ZN6liblas4guidD1Ev
> 000f0a58 w F .text 0000002c _ZN6liblas4guidaSERKS0_
> ...
>
> Thus, I can't really tell the difference, apart from the huge difference in
> size :)
>
> $ ls -lah liblas*.so.2*
> -rwxrwxr-x 1 neo neo 1,3M 12 feb 18.33 liblas_c.so.2.0.0
> -rwxrwxr-x 1 neo neo 11M 12 feb 18.33 liblas.so.2.0.0
> $
>
The *intent* was to have the _c only have the C API in it and dynamically link to the liblas.so which contains the entire C++ API. Stuff seems a bit mixed if the same symbols are showing up in both. I'll admit to being a CMake neophyte when it comes to controlling these kinds of things...
>> So maybe we should retain a versioned name for the C++ interface
>> to avoid possible future ABI breakage... Some clarifications about
>> the API roadmap for liblas would be great.
>
> Indeed :)
>
Agreed. The C++ API between 1.2.x and 1.6 has seen a number of additions and changes, with a few deletions. They are in no way compatible.
The C API has only had a few additions between 1.2 -> 1.6, and it should be binary compatible for the most part.
As far as a roadmap goes, my intention is that there will not be too many changes to either the C or C++ APIs going forward unless something clearly needs to be reversed. Versioning the APIs does makes sense, even for clarity's sake though.
Howard
PS: Adding liblas-devel to keep them aware of API issues as well.
More information about the Liblas-devel
mailing list