with libabigail trunk 271e3afaf6f2b6f38b4f125f64f5b24a8f78459f /lib64/libpoppler-glib.so.8.18.0 from poppler-glib-0.90.0-6.fc33.x86_64 fails self check: /home/ben/Shared/Work/test/libabigail-x86_64/bin/abidw --abidiff /lib64/libpoppler-glib.so.8.18.0 Download failed: File exists. Continuing without debug info for /home/ben/Shared/test/system-supplied DSO at 0x7ffff7fcf000. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Functions changes summary: 0 Removed, 215 Changed, 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 215 functions with some indirect sub-type change: [C] 'function PopplerAnnot* poppler_annot_circle_new(PopplerDocument*, PopplerRectangle*)' at poppler-annot.cc:667:1 has some indirect sub-type changes: parameter 1 of type 'PopplerDocument*' has sub-type changes: in pointed to type 'typedef PopplerDocument' at poppler.h:174:1: underlying type 'struct _PopplerDocument' at poppler-private.h:25:1 changed: type size hasn't changed 2 data member changes: type of 'PDFDoc* _PopplerDocument::doc' changed: in pointed to type 'class PDFDoc' at PDFDoc.h:116:1: type size hasn't changed 2 data member changes: type of 'Catalog* PDFDoc::catalog' changed: in pointed to type 'class Catalog' at Catalog.h:104:1: type size hasn't changed 2 data member changes: type of 'PDFDoc* Catalog::doc' changed: pointed to type 'class PDFDoc' changed, as being reported type of 'StructTreeRoot* Catalog::structTreeRoot' changed: in pointed to type 'class StructTreeRoot' at StructTreeRoot.h:26:1: type size hasn't changed 2 data member changes: type of 'PDFDoc* StructTreeRoot::doc' changed: pointed to type 'class PDFDoc' changed, as being reported type of 'StructTreeRoot::ElemPtrArray StructTreeRoot::elements' changed: underlying type 'class std::vector<StructElement*, std::allocator<StructElement*> >' at stl_vector.h:389:1 changed: type size hasn't changed 1 base class change: 'struct std::_Vector_base<StructElement*, std::allocator<StructElement*> >' at stl_vector.h:84:1 changed: type size hasn't changed 1 data member change: type of 'std::_Vector_base<StructElement*, std::allocator<StructElement*> >::_Vector_impl std::_Vector_base<StructElement*, std::allocator<StructElement*> >::_M_impl' changed: type size hasn't changed 1 base class change: 'struct std::_Vector_base<StructElement*, std::allocator<StructElement*> >::_Vector_impl_data' at stl_vector.h:91:1 changed: type size hasn't changed 3 data member changes: type of 'std::_Vector_base<StructElement*, std::allocator<StructElement*> >::pointer std::_Vector_base<StructElement*, std::allocator<StructElement*> >::_Vector_impl_data::_M_start' changed: underlying type 'typedef __gnu_cxx::__alloc_traits<std::allocator<StructElement*>, StructElement*>::pointer' at alloc_traits.h:57:1 changed: underlying type 'typedef std::allocator_traits<std::allocator<StructElement*> >::pointer' at alloc_traits.h:416:1 changed: underlying type 'StructElement**' changed: in pointed to type 'StructElement*': in pointed to type 'class StructElement' at StructElement.h:122:1: type size hasn't changed 3 data member changes: type of 'StructTreeRoot* StructElement::treeRoot' changed: pointed to type 'class StructTreeRoot' changed, as being reported type of 'StructElement* StructElement::parent' changed: pointed to type 'class StructElement' changed, as being reported type of 'anonymous data member union {StructElement::StructData* s; StructElement::ContentData* c;}' changed: type size hasn't changed 1 data member change: type of 'StructElement::StructData* s' changed: in pointed to type 'struct StructElement::StructData' at StructElement.h:255:1: type size hasn't changed 1 data member change: type of 'StructElement::ElemPtrArray StructElement::StructData::elements' changed: underlying type 'class std::vector<StructElement*, std::allocator<StructElement*> >' changed, as being reported type changed from: union {StructElement::StructData* s; StructElement::ContentData* c;} to: union {StructElement::StructData* s; StructElement::ContentData* c;} type of 'std::_Vector_base<StructElement*, std::allocator<StructElement*> >::pointer std::_Vector_base<StructElement*, std::allocator<StructElement*> >::_Vector_impl_data::_M_finish' changed, as reported earlier type of 'std::_Vector_base<StructElement*, std::allocator<StructElement*> >::pointer std::_Vector_base<StructElement*, std::allocator<StructElement*> >::_Vector_impl_data::_M_end_of_storage' changed, as reported earlier type of 'Page** PDFDoc::pageCache' changed: in pointed to type 'Page*': in pointed to type 'class Page' at Page.h:144:1: type size hasn't changed 2 data member changes: type of 'PDFDoc* Page::doc' changed: pointed to type 'class PDFDoc' changed, as being reported type of 'Annots* Page::annots' changed: in pointed to type 'class Annots' at Annot.h:1684:1: type size hasn't changed 1 data member change: type of 'PDFDoc* Annots::doc' changed: pointed to type 'class PDFDoc' changed, as being reported type of 'CairoOutputDev* _PopplerDocument::output_dev' changed: in pointed to type 'class CairoOutputDev' at CairoOutputDev.h:88:1: type size hasn't changed 66 member function insertions: 'method virtual bool CairoOutputDev::axialShadedFill(GfxState*, GfxAxialShading*, double, double)' at CairoOutputDev.cc:1117:1, virtual at voffset 63/106 'method virtual bool CairoOutputDev::axialShadedSupportExtend(GfxState*, GfxAxialShading*)' at CairoOutputDev.cc:1140:1, virtual at voffset 64/106 'method virtual void CairoOutputDev::beginActualText(GfxState*, const GooString*)' at CairoOutputDev.cc:1605:1, virtual at voffset 83/106 'method virtual void CairoOutputDev::beginString(GfxState*, const GooString*)' at CairoOutputDev.cc:1398:1, virtual at voffset 74/106 'method virtual void CairoOutputDev::beginTextObject(GfxState*)' at CairoOutputDev.cc:1588:1, virtual at voffset 80/106 'method virtual void CairoOutputDev::beginTransparencyGroup(GfxState*, const double*, GfxColorSpace*, bool, bool, bool)' at CairoOutputDev.cc:1645:1, virtual at voffset 102/106 'method virtual bool CairoOutputDev::beginType3Char(GfxState*, double, double, double, double, CharCode, const Unicode*, int)' at CairoOutputDev.cc:1536:1, virtual at voffset 78/106 'method virtual void CairoOutputDev::clearSoftMask(GfxState*)' at CairoOutputDev.cc:1910:1, virtual at voffset 106/106 'method virtual void CairoOutputDev::clip(GfxState*)' at CairoOutputDev.cc:1339:1, virtual at voffset 69/106 'method virtual void CairoOutputDev::clipToStrokePath(GfxState*)' at CairoOutputDev.cc:1364:1, virtual at voffset 71/106 'method virtual void CairoOutputDev::drawChar(GfxState*, double, double, double, double, double, double, CharCode, int, const Unicode*, int)' at CairoOutputDev.cc:1419:1, virtual at voffset 76/106 'method virtual void CairoOutputDev::drawImage(GfxState*, Object*, Stream*, int, int, GfxImageColorMap*, bool, const int*, bool)' at CairoOutputDev.cc:3275:1, virtual at voffset 88/106 'method virtual void CairoOutputDev::drawImageMask(GfxState*, Object*, Stream*, int, int, bool, bool, bool)' at CairoOutputDev.cc:2009:1, virtual at voffset 85/106 'method virtual void CairoOutputDev::drawMaskedImage(GfxState*, Object*, Stream*, int, int, GfxImageColorMap*, bool, Stream*, int, int, bool, bool)' at CairoOutputDev.cc:2539:1, virtual at voffset 89/106 'method virtual void CairoOutputDev::drawSoftMaskedImage(GfxState*, Object*, Stream*, int, int, GfxImageColorMap*, bool, Stream*, int, int, GfxImageColorMap*, bool)' at CairoOutputDev.cc:2696:1, virtual at voffset 90/106 'method virtual void CairoOutputDev::endActualText(GfxState*)' at CairoOutputDev.cc:1611:1, virtual at voffset 84/106 'method virtual void CairoOutputDev::endPage()' at CairoOutputDev.cc:286:1, virtual at voffset 15/106 'method virtual void CairoOutputDev::endString(GfxState*)' at CairoOutputDev.cc:1455:1, virtual at voffset 75/106 'method virtual void CairoOutputDev::endTextObject(GfxState*)' at CairoOutputDev.cc:1591:1, virtual at voffset 81/106 'method virtual void CairoOutputDev::endTransparencyGroup(GfxState*)' at CairoOutputDev.cc:1693:1, virtual at voffset 103/106 'method virtual void CairoOutputDev::endType3Char(GfxState*)' at CairoOutputDev.cc:1565:1, virtual at voffset 79/106 'method virtual void CairoOutputDev::eoClip(GfxState*)' at CairoOutputDev.cc:1351:1, virtual at voffset 70/106 'method virtual void CairoOutputDev::eoFill(GfxState*)' at CairoOutputDev.cc:872:1, virtual at voffset 60/106 'method virtual void CairoOutputDev::fill(GfxState*)' at CairoOutputDev.cc:836:1, virtual at voffset 59/106 'method virtual bool CairoOutputDev::functionShadedFill(GfxState*, GfxFunctionShading*)' at CairoOutputDev.cc:1018:1, virtual at voffset 62/106 'method virtual bool CairoOutputDev::gouraudTriangleShadedFill(GfxState*, GfxGouraudTriangleShading*)' at CairoOutputDev.cc:1190:1, virtual at voffset 67/106 'method virtual bool CairoOutputDev::interpretType3Chars()' at CairoOutputDev.h:125:1, virtual at voffset 8/106 'method virtual bool CairoOutputDev::needClipToCropBox()' at CairoOutputDev.h:129:1, virtual at voffset 11/106 'method virtual void CairoOutputDev::paintTransparencyGroup(GfxState*, const double*)' at CairoOutputDev.cc:1707:1, virtual at voffset 104/106 'method virtual bool CairoOutputDev::patchMeshShadedFill(GfxState*, GfxPatchMeshShading*)' at CairoOutputDev.cc:1248:1, virtual at voffset 68/106 'method virtual bool CairoOutputDev::radialShadedFill(GfxState*, GfxRadialShading*, double, double)' at CairoOutputDev.cc:1145:1, virtual at voffset 65/106 'method virtual bool CairoOutputDev::radialShadedSupportExtend(GfxState*, GfxRadialShading*)' at CairoOutputDev.cc:1184:1, virtual at voffset 66/106 'method virtual void CairoOutputDev::restoreState(GfxState*)' at CairoOutputDev.cc:309:1, virtual at voffset 21/106 'method virtual void CairoOutputDev::saveState(GfxState*)' at CairoOutputDev.cc:293:1, virtual at voffset 20/106 'method virtual void CairoOutputDev::setDefaultCTM(const double*)' at CairoOutputDev.cc:361:1, virtual at voffset 12/106 'method virtual void CairoOutputDev::setSoftMask(GfxState*, const double*, bool, Function*, GfxColor*)' at CairoOutputDev.cc:1773:1, virtual at voffset 105/106 'method virtual void CairoOutputDev::setSoftMaskFromImageMask(GfxState*, Object*, Stream*, int, int, bool, bool, double*)' at CairoOutputDev.cc:2063:1, virtual at voffset 86/106 'method virtual void CairoOutputDev::startPage(int, GfxState*, XRef*)' at CairoOutputDev.cc:269:1, virtual at voffset 14/106 'method virtual void CairoOutputDev::stroke(GfxState*)' at CairoOutputDev.cc:808:1, virtual at voffset 58/106 'method virtual bool CairoOutputDev::tilingPatternFill(GfxState*, Gfx*, Catalog*, Object*, const double*, int, int, Dict*, const double*, const double*, int, int, int, int, double, double)' at CairoOutputDev.cc:895:1, virtual at voffset 61/106 'method virtual void CairoOutputDev::type3D0(GfxState*, double, double)' at CairoOutputDev.cc:1572:1, virtual at voffset 97/106 'method virtual void CairoOutputDev::type3D1(GfxState*, double, double, double, double, double, double)' at CairoOutputDev.cc:1577:1, virtual at voffset 98/106 'method virtual void CairoOutputDev::unsetSoftMaskFromImageMask(GfxState*, double*)' at CairoOutputDev.cc:2127:1, virtual at voffset 87/106 'method virtual void CairoOutputDev::updateAll(GfxState*)' at CairoOutputDev.cc:344:1, virtual at voffset 22/106 'method virtual void CairoOutputDev::updateBlendMode(GfxState*)' at CairoOutputDev.cc:604:1, virtual at voffset 37/106 'method virtual void CairoOutputDev::updateCTM(GfxState*, double, double, double, double, double, double)' at CairoOutputDev.cc:377:1, virtual at voffset 23/106 'method virtual void CairoOutputDev::updateFillColor(GfxState*)' at CairoOutputDev.cc:501:1, virtual at voffset 35/106 'method virtual void CairoOutputDev::updateFillColorStop(GfxState*, double)' at CairoOutputDev.cc:583:1, virtual at voffset 46/106 'method virtual void CairoOutputDev::updateFillOpacity(GfxState*)' at CairoOutputDev.cc:547:1, virtual at voffset 38/106 'method virtual void CairoOutputDev::updateFlatness(GfxState*)' at CairoOutputDev.cc:423:1, virtual at voffset 25/106 'method virtual void CairoOutputDev::updateFont(GfxState*)' at CairoOutputDev.cc:659:1, virtual at voffset 47/106 'method virtual void CairoOutputDev::updateLineCap(GfxState*)' at CairoOutputDev.cc:443:1, virtual at voffset 27/106 'method virtual void CairoOutputDev::updateLineDash(GfxState*)' at CairoOutputDev.cc:412:1, virtual at voffset 24/106 'method virtual void CairoOutputDev::updateLineJoin(GfxState*)' at CairoOutputDev.cc:427:1, virtual at voffset 26/106 'method virtual void CairoOutputDev::updateLineWidth(GfxState*)' at CairoOutputDev.cc:465:1, virtual at voffset 29/106 'method virtual void CairoOutputDev::updateMiterLimit(GfxState*)' at CairoOutputDev.cc:459:1, virtual at voffset 28/106 'method virtual void CairoOutputDev::updateStrokeColor(GfxState*)' at CairoOutputDev.cc:524:1, virtual at voffset 36/106 'method virtual void CairoOutputDev::updateStrokeOpacity(GfxState*)' at CairoOutputDev.cc:565:1, virtual at voffset 39/106 'method virtual bool CairoOutputDev::upsideDown()' at CairoOutputDev.h:101:1, virtual at voffset 2/106 'method virtual bool CairoOutputDev::useDrawChar()' at CairoOutputDev.h:104:1, virtual at voffset 3/106 'method virtual bool CairoOutputDev::useFillColorStop()' at CairoOutputDev.h:121:1, virtual at voffset 6/106 'method virtual bool CairoOutputDev::useShadedFills(int)' at CairoOutputDev.h:115:1, virtual at voffset 5/106 'method virtual bool CairoOutputDev::useTilingPatternFill()' at CairoOutputDev.h:109:1, virtual at voffset 4/106 'method virtual CairoOutputDev::~CairoOutputDev(int)' at CairoOutputDev.cc:175:1 'method virtual CairoOutputDev::~CairoOutputDev(int)' at CairoOutputDev.cc:175:1 'method virtual CairoOutputDev::~CairoOutputDev(int)' at CairoOutputDev.cc:175:1 66 member function changes: 'method virtual CairoOutputDev::~CairoOutputDev(int)' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual CairoOutputDev::~CairoOutputDev(int)' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual CairoOutputDev::~CairoOutputDev(int)' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual bool CairoOutputDev::upsideDown()' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual bool CairoOutputDev::useDrawChar()' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual bool CairoOutputDev::useTilingPatternFill()' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual bool CairoOutputDev::useShadedFills(int)' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: pointed to type 'class CairoOutputDev' changed, as being reported 'method virtual bool CairoOutputDev::useFillColorStop()' has some sub-type changes: implicit parameter 0 of type 'CairoOutputDev*' has sub-type changes: ... <the rest is just duplicate reports> There is a huge amount of output. It isn't clear what the problem actually is. At the base of the tree you see: type changed from: union {StructElement::StructData* s; StructElement::ContentData* c;} to: union {StructElement::StructData* s; StructElement::ContentData* c;} Which doesn't actually have any obvious differences. Then the vtable has some weird inconsistencies.
note that my testing doesn't kick out /lib64/libpoppler-glib.so.8.19.0 from poppler-glib-21.01.0-5.fc34.x86_64 anymore. Let's close this particular bug as Works for me since it works in the current trunk.