Bug 29302 - xeres-c doesn't self compare
Summary: xeres-c doesn't self compare
Status: RESOLVED FIXED
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: 2022-06-29 21:02 UTC by Ben Woodard
Modified: 2022-07-18 14:00 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 2022-06-29 21:02:07 UTC
With trunk as of 7006c5f3c49b92f066a8f415e87b35a5c2afd32c

from xerces-c-3.2.3-6.fc36.i686.rpm

$ abidw --abidiff /usr/lib64/libxerces-c-3.2.so
Downloading from https://debuginfod.fedoraproject.org/ 5133994/14722016
Functions changes summary: 0 Removed, 1 Changed, 0 Added function
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

1 function with some indirect sub-type change:

  [C] 'method virtual int xercesc_3_2::DatatypeValidator::compare(const XMLCh*, const XMLCh*, xercesc_3_2::MemoryManager*)' at AnySimpleTypeDatatypeValidator.cpp:49:1 has some indirect sub-type changes:
    Please note that the symbol of this function is _ZN11xercesc_3_230AnySimpleTypeDatatypeValidator7compareEPKDsS2_PNS_13MemoryManagerE
     and it aliases symbol: _ZN11xercesc_3_223AbstractStringValidator7compareEPKDsS2_PNS_13MemoryManagerE
    'method virtual int xercesc_3_2::DatatypeValidator::compare(const XMLCh*, const XMLCh*, xercesc_3_2::MemoryManager*) {_ZN11xercesc_3_230AnySimpleTypeDatatypeValidator7compareEPKDsS2_PNS_13MemoryManagerE, _ZN11xercesc_3_223AbstractStringValidator7compareEPKDsS2_PNS_13MemoryManagerE}' now becomes 'method virtual int xercesc_3_2::AnySimpleTypeDatatypeValidator::compare(const XMLCh*, const XMLCh*, xercesc_3_2::MemoryManager*) {_ZN11xercesc_3_230AnySimpleTypeDatatypeValidator7compareEPKDsS2_PNS_13MemoryManagerE, _ZN11xercesc_3_223AbstractStringValidator7compareEPKDsS2_PNS_13MemoryManagerE}'
    implicit parameter 0 of type 'xercesc_3_2::DatatypeValidator*' changed:
      in pointed to type 'class xercesc_3_2::DatatypeValidator' at AnySimpleTypeDatatypeValidator.hpp:29:1:
        type name changed from 'xercesc_3_2::DatatypeValidator' to 'xercesc_3_2::AnySimpleTypeDatatypeValidator'
        type size hasn't changed
        2 base class deletions:
          class xercesc_3_2::XMemory at XMemory.hpp:40:1
          class xercesc_3_2::XSerializable at XSerializable.hpp:30:1
        1 base class insertion:
          class xercesc_3_2::DatatypeValidator at DatatypeValidator.hpp:55:1
        13 member function deletions:
          'method virtual int xercesc_3_2::DatatypeValidator::compare(const XMLCh*, const XMLCh*, xercesc_3_2::MemoryManager*)' at DatatypeValidator.hpp:716:1, virtual at voffset 10/11
          'method virtual const XMLCh* xercesc_3_2::DatatypeValidator::getCanonicalRepresentation(const XMLCh*, xercesc_3_2::MemoryManager*, bool) const' at DatatypeValidator.cpp:517:1, virtual at voffset 7/11
          'method virtual const xercesc_3_2::RefArrayVectorOf<char16_t>* xercesc_3_2::DatatypeValidator::getEnumString() const' at DatatypeValidator.hpp:171:1, virtual at voffset 6/11
          'method virtual xercesc_3_2::XProtoType* xercesc_3_2::DatatypeValidator::getProtoType() const' at DatatypeValidator.cpp:211:1, virtual at voffset 4/11
          'method virtual bool xercesc_3_2::DatatypeValidator::isAtomic() const' at DatatypeValidator.hpp:684:1, virtual at voffset 5/11
          'method virtual bool xercesc_3_2::DatatypeValidator::isSerializable() const' at DatatypeValidator.cpp:211:1, virtual at voffset 2/11
          'method virtual bool xercesc_3_2::DatatypeValidator::isSubstitutableBy(const xercesc_3_2::DatatypeValidator*)' at DatatypeValidator.hpp:727:1, virtual at voffset 9/11
          'method virtual xercesc_3_2::DatatypeValidator* xercesc_3_2::DatatypeValidator::newInstance(xercesc_3_2::RefHashTableOf<xercesc_3_2::KVStringPair, xercesc_3_2::StringHasher>*, xercesc_3_2::RefArrayVectorOf<char16_t>*, int, xercesc_3_2::MemoryManager*)' at DatatypeValidator.hpp:302:1, virtual at voffset 11/11
          'method virtual void xercesc_3_2::DatatypeValidator::serialize(xercesc_3_2::XSerializeEngine&)' at DatatypeValidator.cpp:213:1, virtual at voffset 3/11
          'method virtual void xercesc_3_2::DatatypeValidator::validate(const XMLCh*, xercesc_3_2::ValidationContext*, xercesc_3_2::MemoryManager*)' at DatatypeValidator.hpp:253:1, virtual at voffset 8/11
          'method virtual xercesc_3_2::DatatypeValidator::~DatatypeValidator(int)' at DatatypeValidator.cpp:102:1
          'method virtual xercesc_3_2::DatatypeValidator::~DatatypeValidator(int)' at DatatypeValidator.cpp:102:1
          'method virtual xercesc_3_2::DatatypeValidator::~DatatypeValidator(int)' at DatatypeValidator.cpp:102:1
        12 member function insertions:
          'method virtual int xercesc_3_2::AnySimpleTypeDatatypeValidator::compare(const XMLCh*, const XMLCh*, xercesc_3_2::MemoryManager*)' at AnySimpleTypeDatatypeValidator.cpp:49:1, virtual at voffset 10/11
          'method virtual const xercesc_3_2::RefArrayVectorOf<char16_t>* xercesc_3_2::AnySimpleTypeDatatypeValidator::getEnumString() const' at AnySimpleTypeDatatypeValidator.cpp:77:1, virtual at voffset 6/11
          'method virtual xercesc_3_2::XProtoType* xercesc_3_2::AnySimpleTypeDatatypeValidator::getProtoType() const' at AnySimpleTypeDatatypeValidator.cpp:86:1, virtual at voffset 4/11
          'method virtual bool xercesc_3_2::AnySimpleTypeDatatypeValidator::isAtomic() const' at AnySimpleTypeDatatypeValidator.hpp:151:1, virtual at voffset 5/11
          'method virtual bool xercesc_3_2::AnySimpleTypeDatatypeValidator::isSerializable() const' at AnySimpleTypeDatatypeValidator.cpp:86:1, virtual at voffset 2/11
          'method virtual bool xercesc_3_2::AnySimpleTypeDatatypeValidator::isSubstitutableBy(const xercesc_3_2::DatatypeValidator*)' at AnySimpleTypeDatatypeValidator.hpp:160:1, virtual at voffset 9/11
          'method virtual xercesc_3_2::DatatypeValidator* xercesc_3_2::AnySimpleTypeDatatypeValidator::newInstance(xercesc_3_2::RefHashTableOf<xercesc_3_2::KVStringPair, xercesc_3_2::StringHasher>*, xercesc_3_2::RefArrayVectorOf<char16_t>*, int, xercesc_3_2::MemoryManager*)' at AnySimpleTypeDatatypeValidator.cpp:59:1, virtual at voffset 11/11
          'method virtual void xercesc_3_2::AnySimpleTypeDatatypeValidator::serialize(xercesc_3_2::XSerializeEngine&)' at AnySimpleTypeDatatypeValidator.cpp:88:1, virtual at voffset 3/11
          'method virtual void xercesc_3_2::AnySimpleTypeDatatypeValidator::validate(const XMLCh*, xercesc_3_2::ValidationContext*, xercesc_3_2::MemoryManager*)' at AnySimpleTypeDatatypeValidator.hpp:166:1, virtual at voffset 8/11
          'method virtual xercesc_3_2::AnySimpleTypeDatatypeValidator::~AnySimpleTypeDatatypeValidator(int)' at AnySimpleTypeDatatypeValidator.cpp:41:1
          'method virtual xercesc_3_2::AnySimpleTypeDatatypeValidator::~AnySimpleTypeDatatypeValidator(int)' at AnySimpleTypeDatatypeValidator.cpp:41:1
          'method virtual xercesc_3_2::AnySimpleTypeDatatypeValidator::~AnySimpleTypeDatatypeValidator(int)' at AnySimpleTypeDatatypeValidator.cpp:41:1
        18 data member deletions:
          'bool fAnonymous', at offset 64 (in bits) at DatatypeValidator.hpp:520:1
          'bool fFinite', at offset 72 (in bits) at DatatypeValidator.hpp:521:1
          'bool fBounded', at offset 80 (in bits) at DatatypeValidator.hpp:522:1
          'bool fNumeric', at offset 88 (in bits) at DatatypeValidator.hpp:523:1
          'short int fWhiteSpace', at offset 96 (in bits) at DatatypeValidator.hpp:525:1
          'int fFinalSet', at offset 128 (in bits) at DatatypeValidator.hpp:526:1
          'int fFacetsDefined', at offset 160 (in bits) at DatatypeValidator.hpp:527:1
          'int fFixed', at offset 192 (in bits) at DatatypeValidator.hpp:528:1
          'xercesc_3_2::DatatypeValidator::ValidatorType fType', at offset 224 (in bits) at DatatypeValidator.hpp:530:1
          'xercesc_3_2::XSSimpleTypeDefinition::ORDERING fOrdered', at offset 256 (in bits) at DatatypeValidator.hpp:531:1
          'xercesc_3_2::DatatypeValidator* fBaseValidator', at offset 320 (in bits) at DatatypeValidator.hpp:533:1
          'xercesc_3_2::RefHashTableOf<xercesc_3_2::KVStringPair, xercesc_3_2::StringHasher>* fFacets', at offset 384 (in bits) at DatatypeValidator.hpp:534:1
          'XMLCh* fPattern', at offset 448 (in bits) at DatatypeValidator.hpp:535:1
          'xercesc_3_2::RegularExpression* fRegex', at offset 512 (in bits) at DatatypeValidator.hpp:536:1
          'XMLCh* fTypeName', at offset 576 (in bits) at DatatypeValidator.hpp:537:1
          'const XMLCh* fTypeLocalName', at offset 640 (in bits) at DatatypeValidator.hpp:538:1
          'const XMLCh* fTypeUri', at offset 704 (in bits) at DatatypeValidator.hpp:539:1
          'xercesc_3_2::MemoryManager* fMemoryManager', at offset 768 (in bits) at DatatypeValidator.hpp:548:1

This looks very different than other issues I have seen with this point on the trunk.
Comment 1 Ben Woodard 2022-07-06 15:20:14 UTC
This continues to happen with the latest trunk as of: 4cf16bdb
Comment 2 Ben Woodard 2022-07-06 15:24:14 UTC
This also seems to affect wildmagic5

  Functions changes summary: 0 Removed, 9 Changed, 0 Added functions
  Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

  9 functions with some indirect sub-type change:

    [C] 'method virtual Wm5::ConvexHull<double>::~ConvexHull(int)' at Wm5ConvexHull.h:24:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::ConvexHull<double>*' has sub-type changes:
        in pointed to type 'class Wm5::ConvexHull<double>':
          type size changed from 384 to 0 (in bits)
          1 member function deletion:
            'method virtual Wm5::ConvexHull<double>::~ConvexHull(int)' at Wm5ConvexHull.cpp:32:1
          no member function changes (2 filtered);

    [C] 'method virtual Wm5::ConvexHull<float>::~ConvexHull(int)' at Wm5ConvexHull.h:24:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::ConvexHull<float>*' has sub-type changes:
        in pointed to type 'class Wm5::ConvexHull<float>':
          type size changed from 320 to 0 (in bits)
          1 member function deletion:
            'method virtual Wm5::ConvexHull<float>::~ConvexHull(int)' at Wm5ConvexHull.cpp:32:1
          no member function changes (2 filtered);

    [C] 'method virtual Wm5::Delaunay<float>::~Delaunay(int)' at Wm5Delaunay.h:27:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::Delaunay<float>*' has sub-type changes:
        in pointed to type 'class Wm5::Delaunay<float>':
          type size changed from 384 to 0 (in bits)
          1 member function deletion:
            'method virtual Wm5::Delaunay<float>::~Delaunay(int)' at Wm5Delaunay.cpp:33:1
          no member function changes (2 filtered);

    [C] 'method virtual Wm5::Intersector<double, Wm5::Vector3<double> >::~Intersector(int)' at Wm5Intersector.h:24:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::Intersector<double, Wm5::Vector3<double> >*' has sub-type changes:
        in pointed to type 'class Wm5::Intersector<double, Wm5::Vector3<double> >':
          type size changed from 192 to 0 (in bits)
          4 member function deletions:
            'method virtual bool Wm5::Intersector<double, Wm5::Vector3<double> >::Find(double, const Wm5::Vector3<double>&, const Wm5::Vector3<double>&)' at Wm5Intersector.h:39:1, virtual at voffset 5/5
            'method virtual bool Wm5::Intersector<double, Wm5::Vector3<double> >::Test()' at Wm5Intersector.h:30:1, virtual at voffset 2/5
            'method virtual bool Wm5::Intersector<double, Wm5::Vector3<double> >::Test(double, const Wm5::Vector3<double>&, const Wm5::Vector3<double>&)' at Wm5Intersector.h:37:1, virtual at voffset 4/5
            'method virtual Wm5::Intersector<double, Wm5::Vector3<double> >::~Intersector(int)' at Wm5Intersector.cpp:23:1
          no member function changes (3 filtered);
          1 data member deletion:
            'int mIntersectionType', at offset 64 (in bits) at Wm5Intersector.h:64:1

    [C] 'method virtual Wm5::Intersector<float, Wm5::Vector3<float> >::~Intersector(int)' at Wm5Intersector.h:24:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::Intersector<float, Wm5::Vector3<float> >*' has sub-type changes:
        in pointed to type 'class Wm5::Intersector<float, Wm5::Vector3<float> >':
          type size changed from 128 to 0 (in bits)
          4 member function deletions:
            'method virtual bool Wm5::Intersector<float, Wm5::Vector3<float> >::Find(float, const Wm5::Vector3<float>&, const Wm5::Vector3<float>&)' at Wm5Intersector.cpp:64:1, virtual at voffset 5/5    {_ZN3Wm511IntersectorIfNS_7Vector3IfEEE4FindEfRKS2_S5_}
            'method virtual bool Wm5::Intersector<float, Wm5::Vector3<float> >::Test()' at Wm5Intersector.cpp:40:1, virtual at voffset 2/5    {_ZN3Wm511IntersectorIfNS_7Vector3IfEEE4TestEv}
            'method virtual bool Wm5::Intersector<float, Wm5::Vector3<float> >::Test(float, const Wm5::Vector3<float>&, const Wm5::Vector3<float>&)' at Wm5Intersector.cpp:56:1, virtual at voffset 4/5    {_ZN3Wm511IntersectorIfNS_7Vector3IfEEE4TestEfRKS2_S5_}
            'method virtual Wm5::Intersector<float, Wm5::Vector3<float> >::~Intersector(int)' at Wm5Intersector.cpp:23:1
          1 member function changes (2 filtered):
            'method virtual bool Wm5::Intersector<float, Wm5::Vector3<float> >::Find()' has some sub-type changes:
              method virtual bool Wm5::Intersector<float, Wm5::Vector3<float> >::Find() did have linkage names '_ZN3Wm511IntersectorIfNS_7Vector3IfEEE4FindEv'
              but it doesn't have any linkage name anymore
          1 data member deletion:
            'int mIntersectionType', at offset 64 (in bits) at Wm5Intersector.h:64:1

    [C] 'method virtual Wm5::IntpBSplineUniform<double>::~IntpBSplineUniform(int)' at Wm5IntpBSplineUniform.h:25:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::IntpBSplineUniform<double>*' has sub-type changes:
        in pointed to type 'class Wm5::IntpBSplineUniform<double>':
          type size changed from 1280 to 0 (in bits)
          5 member function deletions:
            'method virtual void Wm5::IntpBSplineUniform<double>::ComputeIntermediate()' at Wm5IntpBSplineUniform.h:65:1, virtual at voffset 5/5
            'method virtual void Wm5::IntpBSplineUniform<double>::EvaluateUnknownData()' at Wm5IntpBSplineUniform.h:64:1, virtual at voffset 4/5
            'method virtual double Wm5::IntpBSplineUniform<double>::operator()(double*)' at Wm5IntpBSplineUniform.h:35:1, virtual at voffset 2/5
            'method virtual double Wm5::IntpBSplineUniform<double>::operator()(int*, double*)' at Wm5IntpBSplineUniform.h:38:1, virtual at voffset 3/5
            'method virtual Wm5::IntpBSplineUniform<double>::~IntpBSplineUniform(int)' at Wm5IntpBSplineUniform.cpp:145:1
          no member function changes (2 filtered);
          11 data member deletions:
            'int mDims', at offset 64 (in bits) at Wm5IntpBSplineUniform.h:41:1
            'int mDp1', at offset 128 (in bits) at Wm5IntpBSplineUniform.h:43:1
            'int mDp1ToN', at offset 160 (in bits) at Wm5IntpBSplineUniform.h:44:1
            'int mDp1To2N', at offset 192 (in bits) at Wm5IntpBSplineUniform.h:45:1
            'int* mDim', at offset 256 (in bits) at Wm5IntpBSplineUniform.h:46:1
            'double* mDomMin', at offset 384 (in bits) at Wm5IntpBSplineUniform.h:48:1
            'double* mDomMax', at offset 448 (in bits) at Wm5IntpBSplineUniform.h:49:1
            'double* mCache', at offset 832 (in bits) at Wm5IntpBSplineUniform.h:55:1
            'double** mCoeff', at offset 1024 (in bits) at Wm5IntpBSplineUniform.h:58:1
            'double* mProduct', at offset 1088 (in bits) at Wm5IntpBSplineUniform.h:59:1
            'int* mSkip', at offset 1152 (in bits) at Wm5IntpBSplineUniform.h:60:1

 [C] 'method virtual Wm5::IntpBSplineUniform<float>::~IntpBSplineUniform(int)' at Wm5IntpBSplineUniform.h:25:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::IntpBSplineUniform<float>*' has sub-type changes:
        in pointed to type 'class Wm5::IntpBSplineUniform<float>':
          type size changed from 1280 to 0 (in bits)
          5 member function deletions:
            'method virtual void Wm5::IntpBSplineUniform<float>::ComputeIntermediate()' at Wm5IntpBSplineUniform.h:65:1, virtual at voffset 5/5
            'method virtual void Wm5::IntpBSplineUniform<float>::EvaluateUnknownData()' at Wm5IntpBSplineUniform.h:64:1, virtual at voffset 4/5
            'method virtual float Wm5::IntpBSplineUniform<float>::operator()(float*)' at Wm5IntpBSplineUniform.h:35:1, virtual at voffset 2/5
            'method virtual float Wm5::IntpBSplineUniform<float>::operator()(int*, float*)' at Wm5IntpBSplineUniform.h:38:1, virtual at voffset 3/5
            'method virtual Wm5::IntpBSplineUniform<float>::~IntpBSplineUniform(int)' at Wm5IntpBSplineUniform.cpp:145:1
          no member function changes (2 filtered);
          11 data member deletions:
            'int mDims', at offset 64 (in bits) at Wm5IntpBSplineUniform.h:41:1
            'int mDp1', at offset 128 (in bits) at Wm5IntpBSplineUniform.h:43:1
            'int mDp1ToN', at offset 160 (in bits) at Wm5IntpBSplineUniform.h:44:1
            'int mDp1To2N', at offset 192 (in bits) at Wm5IntpBSplineUniform.h:45:1
            'int* mDim', at offset 256 (in bits) at Wm5IntpBSplineUniform.h:46:1
            'float* mDomMin', at offset 384 (in bits) at Wm5IntpBSplineUniform.h:48:1
            'float* mDomMax', at offset 448 (in bits) at Wm5IntpBSplineUniform.h:49:1
            'float* mCache', at offset 832 (in bits) at Wm5IntpBSplineUniform.h:55:1
            'float** mCoeff', at offset 1024 (in bits) at Wm5IntpBSplineUniform.h:58:1
            'float* mProduct', at offset 1088 (in bits) at Wm5IntpBSplineUniform.h:59:1
            'int* mSkip', at offset 1152 (in bits) at Wm5IntpBSplineUniform.h:60:1

    [C] 'method virtual Wm5::OdeSolver<double>::~OdeSolver(int)' at Wm5OdeSolver.h:33:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::OdeSolver<double>*' has sub-type changes:
        in pointed to type 'class Wm5::OdeSolver<double>':
          type size changed from 384 to 0 (in bits)
          3 member function deletions:
            'method virtual void Wm5::OdeSolver<double>::SetStepSize(double)' at Wm5OdeSolver.h:36:1, virtual at voffset 3/3
            'method virtual void Wm5::OdeSolver<double>::Update(double, double*, double&, double*)' at Wm5OdeSolver.h:35:1, virtual at voffset 2/3
            'method virtual Wm5::OdeSolver<double>::~OdeSolver(int)' at Wm5OdeSolver.cpp:29:1
          no member function changes (2 filtered);
          1 data member deletion:
            'double* mFValue', at offset 320 (in bits) at Wm5OdeSolver.h:46:1

    [C] 'method virtual Wm5::OdeSolver<float>::~OdeSolver(int)' at Wm5OdeSolver.h:33:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'Wm5::OdeSolver<float>*' has sub-type changes:
        in pointed to type 'class Wm5::OdeSolver<float>':
          type size changed from 320 to 0 (in bits)
          3 member function deletions:
            'method virtual void Wm5::OdeSolver<float>::SetStepSize(float)' at Wm5OdeSolver.h:36:1, virtual at voffset 3/3
            'method virtual void Wm5::OdeSolver<float>::Update(float, float*, float&, float*)' at Wm5OdeSolver.h:35:1, virtual at voffset 2/3
            'method virtual Wm5::OdeSolver<float>::~OdeSolver(int)' at Wm5OdeSolver.cpp:29:1
          no member function changes (2 filtered);
          1 data member deletion:
            'float* mFValue', at offset 256 (in bits) at Wm5OdeSolver.h:46:1
Comment 3 Ben Woodard 2022-07-07 16:49:01 UTC
The prototype patch seems to fix the problem with xerces-c,  qt-virt-manager

diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
index 32a2cead..b71e94d7 100644
--- a/src/abg-dwarf-reader.cc
+++ b/src/abg-dwarf-reader.cc
@@ -14987,7 +14987,7 @@ build_function_decl(read_context&	ctxt,
 	  result->set_symbol(fn_sym);
 	  string linkage_name = result->get_linkage_name();
 	  if (linkage_name.empty()
-	      || !fn_sym->get_alias_from_name(linkage_name))
+	      /*|| !fn_sym->get_alias_from_name(linkage_name)*/)
 	    result->set_linkage_name(fn_sym->get_name());
 	  result->set_is_in_public_symbol_table(true);
 	}


However it didn't seem to fix the problem with recoll which I would have classified in the same problem. I'm really not sure if that means that recoll has a different problem or if the solution is incomplete.

$ fedabipkgdiff --self-compare -a --from fc36 recoll
<snip>
======== comparing'librecoll-1.31.6.so' to itself wrongly yielded result: ===========
  Functions changes summary: 0 Removed, 2 Changed (46 filtered out), 0 Added functions
  Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

  2 functions with some indirect sub-type change:

    [C] 'method MimeHandlerExec::MimeHandlerExec(RclConfig*, const std::string&)' at mh_exec.cpp:64:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'MimeHandlerExec*' has sub-type changes:
        in pointed to type 'class MimeHandlerExec' at mh_exec.h:46:1:
          type size hasn't changed
          1 base class change:
            'class RecollFilter' at mimehandler.h:31:1 changed:
              type size hasn't changed
              10 member function insertions:
                'method virtual void RecollFilter::set_docsize(int64_t)' at mimehandler.h:82:1, virtual at voffset 9/21
                'method virtual bool RecollFilter::set_document_data(const std::string&, const char*, size_t)' at mimehandler.h:78:1, virtual at voffset 5/21
                'method virtual bool RecollFilter::set_document_file(const std::string&, const std::string&)' at mimehandler.h:68:1, virtual at voffset 7/21
                'method virtual bool RecollFilter::set_document_string(const std::string&, const std::string&)' at mimehandler.h:73:1, virtual at voffset 6/21
                'method virtual bool RecollFilter::set_document_uri(const std::string&, const std::string&)' at mimehandler.h:63:1, virtual at voffset 8/21
                'method virtual bool RecollFilter::set_property(Dijon::Filter::__anonymous_enum__1, const std::string&)' at mimehandler.h:44:1, virtual at voffset 4/21
                'method virtual bool RecollFilter::skip_to_document(const std::string&)' at mimehandler.h:95:1, virtual at voffset 12/21
                'method virtual RecollFilter::~RecollFilter(int)' at mimehandler.h:36:1
                'method virtual RecollFilter::~RecollFilter(int)' at mimehandler.h:36:1
                'method virtual RecollFilter::~RecollFilter(int)' at mimehandler.h:36:1
              8 member function changes (7 filtered):
                'method virtual RecollFilter::~RecollFilter(int)' has some sub-type changes:
                'method virtual void RecollFilter::setConfig(RclConfig*)' has some sub-type changes:
                'method virtual bool RecollFilter::set_property(Dijon::Filter::__anonymous_enum__1, const std::string&)' has some sub-type changes:
                'method virtual bool RecollFilter::set_document_data(const std::string&, const char*, size_t)' has some sub-type changes:
                'method virtual bool RecollFilter::set_document_string(const std::string&, const std::string&)' has some sub-type changes:
                'method virtual void RecollFilter::set_docsize(int64_t)' has some sub-type changes:
                'method virtual bool RecollFilter::skip_to_document(const std::string&)' has some sub-type changes:
                'method virtual void RecollFilter::clear()' has some sub-type changes:
          no member function changes (7 filtered);

    [C] 'method virtual bool MimeHandlerExecMultiple::next_document()' at mh_execm.cpp:169:1 has some indirect sub-type changes:
      implicit parameter 0 of type 'MimeHandlerExecMultiple*' has sub-type changes:
        in pointed to type 'class MimeHandlerExecMultiple' at mh_execm.h:98:1:
          type size hasn't changed
          1 base class change:
            'class MimeHandlerExec' at mh_exec.h:46:1 changed:
              details were reported earlier
          2 member function insertions:
            'method virtual MimeHandlerExecMultiple::~MimeHandlerExecMultiple(int)' at mh_execm.h:109:1
            'method virtual MimeHandlerExecMultiple::~MimeHandlerExecMultiple(int)' at mh_execm.h:109:1
          no member function changes (5 filtered);

===SELF CHECK FAILED for 'librecoll-1.31.6.so'
==== SELF CHECK SUCCEEDED for 'recoll' ====
==== SELF CHECK SUCCEEDED for 'recollindex' ====
==== SELF CHECK SUCCEEDED for 'recollq' ====

Let me know if you want to close this one and have me file another one or if you want to address both issues in this one bug report
Comment 4 Dodji Seketeli 2022-07-12 16:00:57 UTC
(In reply to Ben Woodard from comment #3)
> The prototype patch seems to fix the problem with xerces-c,  qt-virt-manager
> 
> diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
> index 32a2cead..b71e94d7 100644
> --- a/src/abg-dwarf-reader.cc
> +++ b/src/abg-dwarf-reader.cc
> @@ -14987,7 +14987,7 @@ build_function_decl(read_context&	ctxt,
>  	  result->set_symbol(fn_sym);
>  	  string linkage_name = result->get_linkage_name();
>  	  if (linkage_name.empty()
> -	      || !fn_sym->get_alias_from_name(linkage_name))
> +	      /*|| !fn_sym->get_alias_from_name(linkage_name)*/)
>  	    result->set_linkage_name(fn_sym->get_name());
>  	  result->set_is_in_public_symbol_table(true);
>  	}

Cool!, thanks!

I have thus applied the patch at https://sourceware.org/git/?p=libabigail.git;a=commit;h=e4c3d18aafbf94f48104f050cb1936a5e2ee5dcd.
 
> However it didn't seem to fix the problem with recoll which I would have
> classified in the same problem. I'm really not sure if that means that
> recoll has a different problem or if the solution is incomplete.

Hmmh, that issue (with the recoll package) seems to be different.  Let me look into it.

> Let me know if you want to close this one and have me file another one or if
> you want to address both issues in this one bug report

I'll look into it.  If it needs to be qualified differently, I'll do it, thanks!
Comment 5 Dodji Seketeli 2022-07-14 14:19:25 UTC
(In reply to dodji from comment #4)
> (In reply to Ben Woodard from comment #3)
> > The prototype patch seems to fix the problem with xerces-c,  qt-virt-manager
> > 
> > diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
> > index 32a2cead..b71e94d7 100644
> > --- a/src/abg-dwarf-reader.cc
> > +++ b/src/abg-dwarf-reader.cc
> > @@ -14987,7 +14987,7 @@ build_function_decl(read_context&	ctxt,
> >  	  result->set_symbol(fn_sym);
> >  	  string linkage_name = result->get_linkage_name();
> >  	  if (linkage_name.empty()
> > -	      || !fn_sym->get_alias_from_name(linkage_name))
> > +	      /*|| !fn_sym->get_alias_from_name(linkage_name)*/)
> >  	    result->set_linkage_name(fn_sym->get_name());
> >  	  result->set_is_in_public_symbol_table(true);
> >  	}
> 
> Cool!, thanks!
> 
> I have thus applied the patch at
> https://sourceware.org/git/?p=libabigail.git;a=commit;
> h=e4c3d18aafbf94f48104f050cb1936a5e2ee5dcd.
>  
> > However it didn't seem to fix the problem with recoll which I would have
> > classified in the same problem. I'm really not sure if that means that
> > recoll has a different problem or if the solution is incomplete.
> 
> Hmmh, that issue (with the recoll package) seems to be different.  Let me
> look into it.
> 
> > Let me know if you want to close this one and have me file another one or if
> > you want to address both issues in this one bug report
> 
> I'll look into it.  If it needs to be qualified differently, I'll do it,
> thanks!


OK, I have pushed a patch that should hopefully fix the recoll package issue.  It's at https://sourceware.org/git/?p=libabigail.git;a=commit;h=2b8b8bc5a8868d3ab9eae487fa64b4d4374e5297.

This should hopefully close this issue.

Thanks!
Comment 6 Dodji Seketeli 2022-07-18 11:22:15 UTC
I am re-opening this as I noticed that there is still an issue with the wildmagic5 package which appears to be a different issue.  Oh well.
Comment 7 Dodji Seketeli 2022-07-18 14:00:19 UTC
(In reply to dodji from comment #6)
> I am re-opening this as I noticed that there is still an issue with the
> wildmagic5 package which appears to be a different issue.  Oh well.

OK, with the patch https://sourceware.org/git/?p=libabigail.git;a=commit;h=5b3516a5e73b4dad4cd44de5bc7adca556cd2ae4, the issue with this particular package seems to be fixed.  So I am closing this again.