On 4/15/05, Andreas Krebbel <[EMAIL PROTECTED]> wrote:
Hi,
on S/390 we have currently a plenty of testsuite failures due to inlining effects.
ld complains about testcases which try to link two files containing the same function in .gnu.linkonce sections but with different code sizes. The sizes differ due to different inlining decisions. The problem is that inlining maybe prevented by global limits which maybe exceeded for one file but not for the other. The actual problem occurred with the "inline-unit-growth" limit which may prevent inlining for a function in one file and allow it for the same function in another.
I'm not sure how to fix that issue. To my mind the whole concept of per unit limits influencing local inlining decisions seems a bit questionable.
Why does the linker not just pick either of the functions? The size difference should not matter.
Is it really the job of the linker to choose between different implementations of a function? It seems to me that this might lead to very, very difficult to track down bugs....