C++ module ordering (was: segmentation fault on GiNaC-1.2.0 using MinGW on Win XP)

Gabriel Dos Reis gdr at integrable-solutions.net
Sun May 9 16:38:42 CEST 2004


"Richard B. Kreckel" <kreckel at ginac.de> writes:

| On 6 May 2004, Ian Lance Taylor wrote:
| > > Please see <http://www.ginac.de/lists/ginac-devel/msg00623.html>.
| >
| > Those bits are the end of my message weren't actually written by me.
| > They were written by some of the C++ compiler hackers at Cygnus.
| 
| So it remains a mystery what was meant by "full runtime dependency
| analysis [...] with no linker mods"?  Sad.
| 
| > Are you familiar with the init_priority attribute supported by g++?
| > It seems to me that it handles most of the problems associated with
| > static object initialization order.
| >     http://gcc.gnu.org/onlinedocs/gcc-3.4.0/gcc/C---Attributes.html#C++%20Attributes
| 
| Sure, but that is only pampering about the real problem: Who establishes
| the PRIORITY variables?  The programmer would have to do it manually.
| Any programmer is likely to get it wrong if confronted with several
| hundreds or even thousands of modules.  Working with an automated
| mechanism is much less prone to errors.  Hence init_priority is not at all
| an acceptable solution, IMNSHO.

I agree.

| A while ago, I've been debugging an industrial application where the
| linker line was basically rearranged automatically based on a self-made
| scheme: a script was extracting dependency ordering information scattered
| by the programmer.  That solution is equivalant to GCC's init_priority.
| The lesson learned from that experience are:
| 
| 1) Most professional C++ programmers are not aware of there being a
|    problem.  Really.  :-(

I think that is far too excessive.

| 2) Even if they are, they are unlikely to get it right.  #-(
| 
| 3) If they don't get it right, debugging code which hasn't even started
|    running yet is intersting.  :-/

agreed too.

-- Gaby



More information about the GiNaC-devel mailing list