This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: inline-unit-growth trouble
On Fri, Apr 15, 2005 at 12:18:54PM -0700, Mike Stump wrote:
> On Friday, April 15, 2005, at 09:01 AM, Andreas Krebbel wrote:
> >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.
>
> This is a linker bug, fix it, then come back. If you're confused, try
> porting GNU ld and using it, or take a look at bfd/elflink.c, under
> SEC_LINK_DUPLICATES_DISCARD v SEC_LINK_DUPLICATES_SAME_SIZE.
Agreed. At first I was inclined to think otherwise, but then I realized
that we could also get different sizes by linking together code produced
by different compiler versions, or at different optimization levels,
and it certainly must be supported that -00 code can be linked with -O2
code.
So yes, the linker should just shut up and pick one version. Consistency
of inlining might be an issue, but it's a red herring in this case. There
are too many other circumstances that could yield different sizes.