PATCH: PR ld/12730: regression] crash when allocating in a static constructor

Craig Southeren
Mon May 16 00:37:00 GMT 2011

Hi Alan,

  Thanks for taking the time to reply.

  While there is a small part of me that would like to tilt against this particular windmill, the lack of any specific point of non-compliance means that I have no firm ground to stand-on. 

  In the end, it's would be about differences in interpretation of an ambiguous text based on historical precedents - which is an almost textbook recipe for a religious war. 

  I have no desire to cast the first stone, so I'm going to let this sleeping dog lie (and also stop mixing metaphors) :)


Sent from my iPhone

On 16/05/2011, at 10:15 AM, Alan Modra <> wrote:

> On Sun, May 15, 2011 at 08:14:19PM +1000, Craig Southeren wrote:
>> At the heart of the issue is the timing of initialising statics at
>> the global/namespace level.
> You won't get much traction on this issue here on the binutils list.
> We did have a ld bug that affected you but that has now been fixed.
> Further discussion should go to one of the gcc lists.  If you can get
> agreement that functions declared with __attribute__ ((constructor))
> ought to be treated exactly as standard C++ namespace scope
> constructors regarding initialisation order, then it would be good to
> have your testcase added to the g++ testsuite.  That should ensure
> both g++ and ld do not regress.
> FWIW, I think your testcase is quite reasonable.  The main reason I
> wanted the testcase removed from the ld testsuite because I found
> the testcase failed using commonly available versions of g++, and
> therefore a C++ testcase wasn't the best way to test ld behaviour.
> -- 
> Alan Modra
> Australia Development Lab, IBM

More information about the Binutils mailing list