Skip to content

Bugfix/fix abi checking

Thomas Braun requested to merge bugfix/fix-abi-checking into tango-9-lts

So here is my stab at fixing the ABI checking.

This PR includes a commit which breaks the ABI, just to see that it is working better now. Judging from the open issues on the involved projects I doubt that this is foolproof, but at least I could get it working now. If we decide that this approach is too kludgy we can also just remove it again.

I'm getting the following now when I include the breaking commit

--- old.dump    2020-08-27 21:25:02.180190259 +0200
+++ new.dump    2020-08-27 21:25:02.296190257 +0200
@@ -6743,7 +6743,7 @@
                                             'Class' => '1040135',
                                             'Header' => undef,
                                             'Line' => '115',
-                                            'MnglName' => '_ZN5Tango7ApiUtil18get_asynch_repliesEl',
+                                            'MnglName' => '_ZN5Tango7ApiUtil18get_asynch_repliesEi',
                                             'Param' => {
                                                          '0' => {
                                                                   'name' => 'this',
@@ -6751,7 +6751,7 @@
                                                                 },
                                                          '1' => {
                                                                   'name' => 'call_timeout',
-                                                                  'type' => '18757'
+                                                                  'type' => '18744'
                                                                 }
                                                        },
                                             'Return' => '1',
@@ -237394,7 +237394,7 @@
                                                   '_ZN5Tango7ApiUtil14device_to_attrERKNS_15DeviceAttributeERNS_16AttributeValue_4E' => 1,                                                                                                                                      
                                                   '_ZN5Tango7ApiUtil14get_ip_from_ifERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE' => 1,                                                                                                             
                                                   '_ZN5Tango7ApiUtil15set_sig_handlerEv' => 1,
-                                                  '_ZN5Tango7ApiUtil18get_asynch_repliesEl' => 1,
+                                                  '_ZN5Tango7ApiUtil18get_asynch_repliesEi' => 1,
                                                   '_ZN5Tango7ApiUtil18get_asynch_repliesEv' => 1,
                                                   '_ZN5Tango7ApiUtil19attr_to_device_baseINS_16AttributeValue_4EEEvPKT_PNS_15DeviceAttributeE' => 1,                                                                                                                            
                                                   '_ZN5Tango7ApiUtil19attr_to_device_baseINS_16AttributeValue_5EEEvPKT_PNS_15DeviceAttributeE' => 1,                                                                                                                            
ABI/API breakages detected!

and no complaint when I revert the ABI breaking commit.

This approach does give quite some false positives, but I don't see how I can get the original approach working.

Merge request reports