This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/48094] ld: warning: section has unexpectedly large size errors in objc/obj-c++ lto


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48094

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #11 from Iain Sandoe <iains at gcc dot gnu.org> 2011-12-05 17:23:25 UTC ---
OK - I can reproduce this on Darwin9.

... as things stand I don't think this is the same bug it was originally --
that is solved (the trivial case originally cited does not give rise to two
instances of the ImageInfo var.).

===

The problem is this;  

In the string case there are now two input object files - and of the those
files contains a local L_OBJC_ImageInfo variable. 

Usually ld would get those variables from two input object files and knows to
coalesce them (even tho the section is not marked coalesce) ...

... when LTO is engaged we now produce (I think, correctly, from an LTO
perspective) two local vars in the section - and the linker doesn't get to see
them and do the merge.

----

So, somehow, we need to make these variables merge-able by LTO; such that there
is only one instance in the LTO output to ld.

I think that later versions of the vendor's tools make some of the ObjC
sections merge-able - so that's a possibility -

- otherwise - Honza any suggestions?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]