On Mon, Mar 20, 2023 at 11:50:16AM +0000, Daniel P. Berrangé wrote:
On Mon, Mar 20, 2023 at 12:39:55PM +0100, Martin Kletzander wrote:
> Fix the build, mainly with clang's optimizations and demonstrate a
> separation of function implementations. This patch does it only for
> functions that differ in implementation based on WITH_NUMACTL but
> ideally this would be done for the WITH_NUMAD and __linux__ parts as
> well.
I don't think we should do this, as it is addressing just one specific
example that happens to hit us today. We've hit thue same problem a few
years ago in different functions.
I think it is a quite clean solution that still makes sense even in case
GCC starts doing similar "optimization" (quotes because looking at the
assembly in this specific instance there is no speed-up or size change,
it can actually be a bit bigger in size). And we could eventually end
up with visible separation of mocked functions, but that is not the main
intention of this proposal.
The problem with interprocedural analysis is a general one that can
affect
any part of the code base. I don't think we want wait to hit the problem
again in yet another piece of the code in the future, as it is really
horrible to debug and diagnose.
Of course we can still keep the second patch, even though we will not
find out the outliers.
The use of the -fsemantic-interposition arg gives us a general
solution
to the problem with CLang for the long term, that makes our mocking of
functions reliable.
For this particular problem, yes.