[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

need a little help with this one.



Grab the objects from 20323 and compare gcc and pgi

You’ll get something like:
  [A] 'function void extent_tree_ad_destroy()'    {extent_tree_ad_destroy}
  [A] 'function void extent_tree_ad_destroy_recurse()'    {extent_tree_ad_destroy_recurse}
  [A] 'function void extent_tree_szad_destroy()'    {extent_tree_szad_destroy}
  [A] 'function void extent_tree_szad_destroy_recurse()'    {extent_tree_szad_destroy_recurse}
  [A] 'function void je_a0dalloc()'    {je_a0dalloc}
  [A] 'function void je_a0malloc()'    {je_a0malloc}
 …

I was looking at the DWARF and I don’t understand why those come up, Why it is considered a new function? I can see that pgi has practically no useful information but I don’t see why it is considered a new function. My guess is that libabigail somehow assumes that because the prototype is different it thinks that it is a new function or something but that is a low probability guess. 

PGI:

 [  925f]    subprogram
             external             (flag)
             name                 (string) "extent_tree_ad_destroy"
             decl_file            (data1) 1
             decl_line            (data1) 53
             low_pc               (addr) +0x000000000002ba40 <extent_tree_ad_destroy>
             high_pc              (addr) +0x000000000002ba70 <extent_szad_comp>
             frame_base           (block1)
              [   0] reg6

GCC:

 [ 5ec98]    subprogram
             external             (flag_present)
             name                 (strp) "extent_tree_ad_destroy"
             decl_file            (data1) 1
             decl_line            (data1) 53
             prototyped           (flag_present)
             low_pc               (addr) +0x000000000003b060 <extent_tree_ad_destroy>
             high_pc              (data8) 2157 (+0x000000000003b8cd)
             frame_base           (exprloc)
              [   0] call_frame_cfa
             GNU_all_call_sites   (flag_present)
             sibling              (ref4) [ 5f5a4]
 [ 5ecb5]      formal_parameter
               name                 (strp) "rbtree"
               decl_file            (data1) 1
               decl_line            (data1) 53
               type                 (ref4) [ 5f5a4]
               location             (sec_offset) location list [ 97909]
 [ 5ecc4]      formal_parameter
               name                 (string) "cb"
               decl_file            (data1) 1
               decl_line            (data1) 53
               type                 (ref4) [ 5f5ba]
               location             (sec_offset) location list [ 9798e]
 [ 5ecd2]      formal_parameter
               name                 (string) "arg"
               decl_file            (data1) 1
               decl_line            (data1) 53
               type                 (ref4) [ 5cf75]
               location             (sec_offset) location list [ 97a68]