[Bug target/29141] static constructors beyond 64k fail

mschulze at ivs dot cs.ovgu.de gcc-bugzilla@gcc.gnu.org
Fri Nov 26 21:01:00 GMT 2010


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

Michael Schulze <mschulze at ivs dot cs.ovgu.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mschulze at ivs dot
                   |                            |cs.ovgu.de

--- Comment #7 from Michael Schulze <mschulze at ivs dot cs.ovgu.de> 2010-11-26 19:21:00 UTC ---
In my opinion this bug is still pending and not fixed. The proposed fix uses
register r20 but this could be clobbered by constructor that are called,
leading to destructing the exit condition of the __do_global_ctors loop. In new
version of gcc (see bug 45263 but still not confirmed) this is weakly fixed by
pushing and poping r20 around the constructor call.  

I would suggest using a register between r2-r17 instead of r20. According to
the compiler abi this should be a register that the called routine has to save
if it needs to use it.



More information about the Gcc-bugs mailing list