egcc 1.1.2 outputs global object constructors as local (C static) symbols

VALETTE Eric valette@crf.canon.fr
Fri Apr 9 00:19:00 GMT 1999


>>>>> "Martin" == Martin v Loewis <martin@mira.isdn.cs.tu-berlin.de> writes:

>> Due to a change in the global constructor/destructor symbol 
>> export generation, Its harder to make generation of
>> constructors table by hand...

Martin> Yes; this change was intentional, and it fixed a real bug. That it
Martin> broke your 'interesting' build process is unfortunate, but
Martin> unavoidable.

I want to understand. I can fix it myself anyway but would like to understand
what the problem was ...

Martin> If you absolutely need this to work, you have to set-up a
Martin> cross-compiler to a target that doesn't support initializer sections.

I will better patch egcc...

Martin> If this answer does not satisfy you, you'll have to explain in more
Martin> detail *why* you want to put the constructor functions into a table -
Martin> the linker already does this for you, in a way that interoperates with
Martin> the crtstuff provided by egcs.

Side remarks : when you are building embbedded system written in C++,
trust me, that you do not want to let the linker make things behing 
your back and that the "system" crt0 has nothing to do with application
crt0...

So, I hope you realize that you may not have the FULL picture of C++
use in mind despite the tone of your mail (that BTW gives 0 info except
yes itwas changed...)

Thanks for answering anyway,


-- 
   __                 
  /  `                   	Eric Valette
 /--   __  o _.          	Canon CRF
(___, / (_(_(__         	Rue de la touche lambert
				35517 Cesson-Sevigne  Cedex
				FRANCE
Tel: +33 (0)2 99 87 68 91	Fax: +33 (0)2 99 84 11 30
E-mail: valette@crf.canon.fr


More information about the Gcc-bugs mailing list