Bug 27326 - libpoppler-glib.so.8.18.0 fails selfcheck
Summary: libpoppler-glib.so.8.18.0 fails selfcheck
Status: RESOLVED WORKSFORME
Alias: None
Product: libabigail
Classification: Unclassified
Component: default (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Dodji Seketeli
URL:
Keywords:
Depends on:
Blocks: 27019
  Show dependency treegraph
 
Reported: 2021-02-03 03:28 UTC by Ben Woodard
Modified: 2021-03-04 20:20 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Woodard 2021-02-03 03:28:03 UTC
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.
Comment 1 Ben Woodard 2021-03-04 20:20:33 UTC
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.