Bug 28776 - libprotobuf.so.25.0.0 vfails self test when run on aarch64
Summary: libprotobuf.so.25.0.0 vfails self test when run on aarch64
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-01-12 22:23 UTC by Ben Woodard
Modified: 2022-06-28 22:29 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-01-12 22:23:47 UTC
When libprotobuf.so.25.0.0 is analyzed on aarch64 it fails self test. However, when the same library is evaluated using the x86_64 abidw then it cpasses a self test.

[x86_64] $ abidw --abidiff libprotobuf.so.25.0.0
[x86_64] $ echo $?
0
$ abidw --abidiff /lib64/libprotobuf.so.25.0.0
Functions changes summary: 0 Removed, 5 Changed, 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

5 functions with some indirect sub-type change:

  [C] 'function const google::protobuf::Option* google::protobuf::util::converter::FindOptionOrNull(const google::protobuf::RepeatedPtrField<google::protobuf::Option>&, google::protobuf::StringPiece)' at utility.cc:143:1 has some indirect sub-type changes:
    parameter 1 of type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>&' has sub-type changes:
      in referenced type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>':
        in unqualified underlying type 'class google::protobuf::RepeatedPtrField<google::protobuf::Option>' at repeated_field.h:921:1:
          type size hasn't changed
          1 base class change:
            'class google::protobuf::internal::RepeatedPtrFieldBase' at repeated_field.h:578:1 changed:
              type size hasn't changed
              1 data member change:
                type of 'google::protobuf::internal::RepeatedPtrFieldBase::Rep* rep_' changed:
                  in pointed to type 'struct google::protobuf::internal::RepeatedPtrFieldBase::Rep' at repeated_field.h:737:1:
                    type size hasn't changed

  [C] 'function bool google::protobuf::util::converter::GetBoolOptionOrDefault(const google::protobuf::RepeatedPtrField<google::protobuf::Option>&, google::protobuf::StringPiece, bool)' at utility.cc:56:1 has some indirect sub-type changes:
    parameter 1 of type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>&' has sub-type changes:
      in referenced type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>':
        unqualified underlying type 'class google::protobuf::RepeatedPtrField<google::protobuf::Option>' changed at repeated_field.h:921:1, as reported earlier

  [C] 'function double google::protobuf::util::converter::GetDoubleOptionOrDefault(const google::protobuf::RepeatedPtrField<google::protobuf::Option>&, google::protobuf::StringPiece, double)' at utility.cc:76:1 has some indirect sub-type changes:
    parameter 1 of type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>&' has sub-type changes:
      in referenced type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>':
        unqualified underlying type 'class google::protobuf::RepeatedPtrField<google::protobuf::Option>' changed at repeated_field.h:921:1, as reported earlier

  [C] 'function google::protobuf::int64 google::protobuf::util::converter::GetInt64OptionOrDefault(const google::protobuf::RepeatedPtrField<google::protobuf::Option>&, google::protobuf::StringPiece, google::protobuf::int64)' at utility.cc:66:1 has some indirect sub-type changes:
    parameter 1 of type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>&' has sub-type changes:
      in referenced type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>':
        unqualified underlying type 'class google::protobuf::RepeatedPtrField<google::protobuf::Option>' changed at repeated_field.h:921:1, as reported earlier

  [C] 'function std::string google::protobuf::util::converter::GetStringOptionOrDefault(const google::protobuf::RepeatedPtrField<google::protobuf::Option>&, google::protobuf::StringPiece, google::protobuf::StringPiece)' at utility.cc:86:1 has some indirect sub-type changes:
    parameter 1 of type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>&' has sub-type changes:
      in referenced type 'const google::protobuf::RepeatedPtrField<google::protobuf::Option>':
        unqualified underlying type 'class google::protobuf::RepeatedPtrField<google::protobuf::Option>' changed at repeated_field.h:921:1, as reported earlier


[x86_64] $ sum libprotobuf.so.25.0.0
14359  2913
[aarch64] $ sum /lib64/libprotobuf.so.25.0.0
14359  2913
[aarch64] $ rpm -qf /lib64/libprotobuf.so.25.0.0
 protobuf-3.14.0-6.fc35.aarch64
Comment 1 Ben Woodard 2022-06-28 22:29:10 UTC
Resolved in one of Dodji's fixes