Bug 29684 - gpsd-libs and gpsd-qt from Fedora 37 fails self compare with libabigail 2.1
Summary: gpsd-libs and gpsd-qt from Fedora 37 fails self compare with libabigail 2.1
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: 29413
  Show dependency treegraph
 
Reported: 2022-10-14 18:40 UTC by Ben Woodard
Modified: 2023-05-18 20:45 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-10-14 18:40:16 UTC
both gpsd-libs and gpsd-qt fail self check with an unusal problem that is almost impossible to parse from a human perspective.

omparing the ABI of binaries between gpsd-libs-3.24-3.fc37.aarch64.rpm and gpsd-libs-3.24-3.fc37.aarch64.rpm:

======== comparing'libgps.so.291.0.1' to itself wrongly yielded result: ===========
  Functions changes summary: 0 Removed, 1 Changed (29 filtered out), 0 Added functions
  Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

  1 function with some indirect sub-type change:

    [C] 'function int gps_close(gps_data_t*)' at libgps_core.c:117:1 has some indirect sub-type changes:
      parameter 1 of type 'gps_data_t*' has sub-type changes:
        in pointed to type 'struct gps_data_t' at gps.h:2693:1:
          type size hasn't changed
          1 data member change:
            type of 'anonymous data member union {rtcm2_t rtcm2; rtcm3_t rtcm3; subframe_t subframe; ais_t ais; rawdata_t raw; gst_t gst; oscillator_t osc; version_t version; char error[256];}' changed:
              type size hasn't changed
              1 data member change:
                type of 'ais_t ais' changed:
                  type size hasn't changed
                  1 data member deletion:
                    'union {struct {unsigned int status; int turn; unsigned int speed; bool accuracy; int lon; int lat; unsigned int course; unsigned int heading; unsigned int second; unsigned int maneuver; bool raim; unsigned int radio;} type1; struct {unsigned int year; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; unsigned int second; bool accuracy; int lon; int lat; unsigned int epfd; bool raim; unsigned int radio;} type4; struct {unsigned int ais_version; unsigned int imo; char callsign[8]; char shipname[21]; unsigned int shiptype; unsigned int to_bow; unsigned int to_stern; unsigned int to_port; unsigned int to_starboard; unsigned int epfd; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; unsigned int draught; char destination[21]; unsigned int dte;} type5; struct {unsigned int seqno; unsigned int dest_mmsi; bool retransmit; unsigned int dac; unsigned int fid; bool structured; size_t bitcount; union {char bitdata[115]; struct {char country[3]; char locode[4]; char section[6]; char terminal[6]; char hectometre[6]; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; unsigned int tugs; unsigned int airdraught;} dac200fid21; struct {char country[3]; char locode[4]; char section[6]; char terminal[6]; char hectometre[6]; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; unsigned int status;} dac200fid22; struct {unsigned int crew; unsigned int passengers; unsigned int personnel;} dac200fid55; struct {unsigned int ana_int; unsigned int ana_ext1; unsigned int ana_ext2; unsigned int racon; unsigned int light; bool alarm; unsigned int stat_ext; bool off_pos;} dac235fid10; struct {char lastport[6]; unsigned int lmonth; unsigned int lday; unsigned int lhour; unsigned int lminute; char nextport[6]; unsigned int nmonth; unsigned int nday; unsigned int nhour; unsigned int nminute; char dangerous[21]; char imdcat[5]; unsigned int unid; unsigned int amount; unsigned int unit;} dac1fid12; struct {unsigned int airdraught;} dac1fid15; struct {unsigned int persons;} dac1fid16; struct {unsigned int linkage; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; char portname[21]; char destination[6]; int lon; int lat;} dac1fid18; struct {unsigned int linkage; unsigned int berth_length; unsigned int berth_depth; unsigned int position; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; unsigned int availability; unsigned int agent; unsigned int fuel; unsigned int chandler; unsigned int stevedore; unsigned int electrical; unsigned int water; unsigned int customs; unsigned int cartage; unsigned int crane; unsigned int lift; unsigned int medical; unsigned int navrepair; unsigned int provisions; unsigned int shiprepair; unsigned int surveyor; unsigned int steam; unsigned int tugs; unsigned int solidwaste; unsigned int liquidwaste; unsigned int hazardouswaste; unsigned int ballast; unsigned int additional; unsigned int regional1; unsigned int regional2; unsigned int future1; unsigned int future2; char berth_name[21]; int berth_lon; int berth_lat;} dac1fid20; struct {bool wmo; union {struct {char location[21]; int lon; int lat; unsigned int day; unsigned int hour; unsigned int minute; bool vislimit; unsigned int visibility; unsigned int humidity; unsigned int wspeed; unsigned int wgust; unsigned int wdir; unsigned int pressure; unsigned int pressuretend; int airtemp; unsigned int watertemp; unsigned int waveperiod; unsigned int wavedir; unsigned int swellheight; unsigned int swellperiod; unsigned int swelldir;} nonwmo_obs; struct {int lon; int lat; unsigned int month; unsigned int day; unsigned int hour; unsigned int minute; unsigned int course; unsigned int speed; unsigned int heading; unsigned int pressure; unsigned int pdelta; unsigned int ptend; unsigned int twinddir; unsigned int twindspeed; unsigned int rwinddir; unsigned int rwindspeed; unsigned int mgustspeed; unsigned int mgustdir; unsigned int airtemp; unsigned int humidity;} wmo_obs;};} dac1fid21; struct {unsigned int unit; unsigned int amount; int ncargos; cargo_t cargos[28];} dac1fid25; route_info dac1fid28; struct {unsigned int linkage; char text[154];} dac1fid30; struct {unsigned int month; unsigned int day; int ntidals; tidal_t tidals[3];} dac1fid32;};} type6; struct {unsigned int mmsi1; unsigned int seqno1; unsigned int mmsi2; unsigned int seqno2; unsigned int mmsi3; unsigned int seqno3; unsigned int mmsi4; unsigned int seqno4;} type7; struct {unsigned int dac; unsigned int fid; size_t bitcount; bool structured; union {char bitdata[119]; struct {char vin[9]; unsigned int length; unsigned int beam; unsigned int shiptype; unsigned int hazard; unsigned int draught; unsigned int loaded; bool speed_q; bool course_q; bool heading_q;} dac200fid10; struct {unsigned int start_year; unsigned int start_month; unsigned int start_day; unsigned int end_year; unsigned int end_month; unsigned int end_day; unsigned int start_hour; unsigned int start_minute; unsigned int end_hour; unsigned int end_minute; int start_lon; int start_lat; int end_lon; int end_lat; unsigned int type; int min; int max; unsigned int intensity; unsigned int wind;} dac200fid23; struct {char country[3]; int ngauges; gauge_t gauges[4];} dac200fid24; struct {int lon; int lat; unsigned int form; unsigned int facing; unsigned int direction; unsigned int status;} dac200fid40; struct {int lon; int lat; unsigned int day; unsigned int hour; unsigned int minute; unsigned int wspeed; unsigned int wgust; unsigned int wdir; unsigned int wgustdir; unsigned int airtemp; unsigned int humidity; unsigned int dewpoint; unsigned int pressure; unsigned int pressuretend; unsigned int visibility; int waterlevel; unsigned int leveltrend; unsigned int cspeed; unsigned int cdir; unsigned int cspeed2; unsigned int cdir2; unsigned int cdepth2; unsigned int cspeed3; unsigned int cdir3; unsigned int cdepth3; unsigned int waveheight; unsigned int waveperiod; unsigned int wavedir; unsigned int swellheight; unsigned int swellperiod; unsigned int swelldir; unsigned int seastate; unsigned int watertemp; unsigned int preciptype; unsigned int salinity; unsigned int ice;} dac1fid11; struct {char reason[21]; char closefrom[21]; char closeto[21]; unsigned int radius; unsigned int extunit; unsigned int fday; unsigned int fmonth; unsigned int fhour; unsigned int fminute; unsigned int tday; unsigned int tmonth; unsigned int thour; unsigned int tminute;} dac1fid13; struct {unsigned int airdraught;} dac1fid15; struct {unsigned int persons;} dac1fid16; struct {int ntargets; target_t targets[4];} dac1fid17; struct {unsigned int linkage; char station[21]; int lon; int lat; unsigned int status; unsigned int signal; unsigned int hour; unsigned int minute; unsigned int nextsignal;} dac1fid19; route_info dac1fid27; struct {unsigned int linkage; char text[162];} dac1fid29; struct {bool accuracy; int lon; int lat; unsigned int day; unsigned int hour; unsigned int minute; unsigned int wspeed; unsigned int wgust; unsigned int wdir; unsigned int wgustdir; int airtemp; unsigned int humidity; int dewpoint; unsigned int pressure; unsigned int pressuretend; bool visgreater; unsigned int visibility; int waterlevel; unsigned int leveltrend; unsigned int cspeed; unsigned int cdir; unsigned int cspeed2; unsigned int cdir2; unsigned int cdepth2; unsigned int cspeed3; unsigned int cdir3; unsigned int cdepth3; unsigned int waveheight; unsigned int waveperiod; unsigned int wavedir; unsigned int swellheight; unsigned int swellperiod; unsigned int swelldir; unsigned int seastate; int watertemp; unsigned int preciptype; unsigned int salinity; unsigned int ice;} dac1fid31;};} type8; struct {unsigned int alt; unsigned int speed; bool accuracy; int lon; int lat; unsigned int course; unsigned int second; unsigned int regional; unsigned int dte; bool assigned; bool raim; unsigned int radio;} type9; struct {unsigned int dest_mmsi;} type10; struct {unsigned int seqno; unsigned int dest_mmsi; bool retransmit; char text[157];} type12; struct {char text[161];} type14; struct {unsigned int mmsi1; unsigned int type1_1; unsigned int offset1_1; unsigned int type1_2; unsigned int offset1_2; unsigned int mmsi2; unsigned int type2_1; unsigned int offset2_1;} type15; struct {unsigned int mmsi1; unsigned int offset1; unsigned int increment1; unsigned int mmsi2; unsigned int offset2; unsigned int increment2;} type16; struct {int lon; int lat; size_t bitcount; char bitdata[92];} type17; struct {unsigned int reserved; unsigned int speed; bool accuracy; int lon; int lat; unsigned int course; unsigned int heading; unsigned int second; unsigned int regional; bool cs; bool display; bool dsc; bool band; bool msg22; bool assigned; bool raim; unsigned int radio;} type18; struct {unsigned int reserved; unsigned int speed; bool accuracy; int lon; int lat; unsigned int course; unsigned int heading; unsigned int second; unsigned int regional; char shipname[21]; unsigned int shiptype; unsigned int to_bow; unsigned int to_stern; unsigned int to_port; unsigned int to_starboard; unsigned int epfd; bool raim; unsigned int dte; bool assigned;} type19; struct {unsigned int offset1; unsigned int number1; unsigned int timeout1; unsigned int increment1; unsigned int offset2; unsigned int number2; unsigned int timeout2; unsigned int increment2; unsigned int offset3; unsigned int number3; unsigned int timeout3; unsigned int increment3; unsigned int offset4; unsigned int number4; unsigned int timeout4; unsigned int increment4;} type20; struct {unsigned int aid_type; char name[35]; bool accuracy; int lon; int lat; unsigned int to_bow; unsigned int to_stern; unsigned int to_port; unsigned int to_starboard; unsigned int epfd; unsigned int second; bool off_position; unsigned int regional; bool raim; bool virtual_aid; bool assigned;} type21; struct {unsigned int channel_a; unsigned int channel_b; unsigned int txrx; bool power; union {struct {int ne_lon; int ne_lat; int sw_lon; int sw_lat;} area; 
 struct {unsigned int dest1; unsigned int dest2;} mmsi;}; bool addressed; bool band_a; bool band_b; unsigned int zonesize;} type22; struct {int ne_lon; int ne_lat; int sw_lon; int sw_lat; unsigned int stationtype; unsigned int shiptype; unsigned int txrx; unsigned int interval; unsigned int quiet;} type23; struct {char shipname[21]; __anonymous_enum__4 part; unsigned int shiptype; char vendorid[8]; unsigned int model; unsigned int serial; char callsign[8]; union {unsigned int mothership_mmsi; struct {unsigned int to_bow; unsigned int to_stern; unsigned int to_port; unsigned int to_starboard;} dim;};} type24; struct {bool addressed; bool structured; unsigned int dest_mmsi; unsigned int app_id; size_t bitcount; char bitdata[16];} type25; struct {bool addressed; bool structured; unsigned int dest_mmsi; unsigned int app_id; size_t bitcount; char bitdata[126]; unsigned int radio;} type26; struct {bool accuracy; bool raim; unsigned int status; int lon; int lat; unsigned int speed; unsigned int course; bool gnss;} type27;}', at offset 128 (in bits)

===SELF CHECK FAILED for 'libgps.so.291.0.1'
Comment 1 Ben Woodard 2023-03-23 21:53:17 UTC
continues to reproduce with current trunk as of:

commit a8a4ca8862959e9fede1b4878469681b8fadeb74 (HEAD -> master, origin/master, origin/HEAD)
Author: Dodji Seketeli <dodji@redhat.com>
Date:   Wed Mar 22 15:42:43 2023 +0100

    abipkgdiff: Fix a typo
    
            * tools/abipkgdiff.cc (compare_to_self): Fix a typo.
    
    Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Comment 2 Ben Woodard 2023-05-18 20:45:03 UTC
This appears to be fixed as of:

commit 06e8d54d0404ccf2a103804ec568797822152b69 (HEAD -> master, origin/master, origin/HEAD)
Author: Dodji Seketeli <dodji@redhat.com>
Date:   Wed May 17 13:44:58 2023 +0200

    Bug 29693 - clang-libs from f37 fails self test