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