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

inlining change and abidiff noise



One of the challenges doing inter-compiler comparison between object
files created by different compilers is that the signal to noise ratio
is very high apparently due to different inlining decisions.

Would there be any negative consequences to having abidiff consider
changes which appear to be due to just differences in how the
compilers choose to inline functions.

As a case in point:

$ ./tools/abidiff ./tools/.libs/abidiff ../build-llvl/tools/.libs/abidiff
Functions changes summary: 4 Removed, 0 Changed, 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 7 Removed, 223 Added function
symbols not referenced by debug info
Variable symbols changes summary: 0 Removed, 3 Added variable symbols
not referenced by debug info

when you look 3 out of 4 of the removed functions and all 233 of the
added functions you can quickly see that they are all weak symbols.

The assumption that I'm making is that adding logic like:
if a symbol is added or removed and the only reference to it is with a
weak symbol then it is a result of a change in inlining and it is
therefore harmless.

What I would like to know is if that assumption is in fact correct?