reassign 988986 tinyxml2
severity 988986 serious
retitle 988986 ABI change in tinyxml2 8.1.0+dfsg-1
found 988986 8.1.0+dfsg-1
thanks


Hi Chow,

it seems that there's an ABI change in tinyxml2 8.1.0+dfsg-1.

cppcheck 2.3-1 was uploaded to unstable on 2020-12-17, compiled against tinyxml2 8.0.0+dfsg-2, and migrated to testing. On 2021-05-20, tinyxml2 8.1.0+dfsg-1 was uploaded to unstable.

Running "touch foo.cpp; cppcheck foo.cpp" works as expected in testing, but shows "_cppcheck: Symbol `_ZTVN8tinyxml210XMLPrinterE' has different size in shared object, consider re-linking" in unstable.

$ echo _ZTVN8tinyxml210XMLPrinterE | c++filt
vtable for tinyxml2::XMLPrinter

Indeed, the diff both between versions of tinyxml shows that the vtable of XMLPrinter has been extended. Looks to me as this ABI change requires at least a library transition.

Thinking a bit more about it ...

This also changes the vtable of derived class (XMLPrinter is not final) in an incompatible way , which can be seen with the example in the contrib folder. Building against 8.0.0+dfsg-2 and running with 8.1.0+dfsg-1 leads to a crash. I wonder why upstream did not bump the SOVERSION.

Best regards,
  Joachim

Reply via email to