Hello Richard, * Richard B. Kreckel wrote on Sun, Jan 06, 2008 at 03:08:15AM CET:
I wrote:
So, CL_REQUIRE can't call the global ctors directly, because it doesn't know what the symbol name is. Only CL_PROVIDE and CL_PROVIDE_END do know that. But, it doesn't appear to be possible to introduce another layer of indirection in CL_PROVIDE like the attached patch tries to. It leads to an infinite loop in the global ctors. Right now, I've run out of ideas.
Well, it turns out that the infinite recursion was due to the braindead way I implemented that other layer of indirection. A plain C function should do the trick.
The attached patch seems to work over here using prerelease GCC 4.3.0-20071130. I would appreciate it if people give it a try and report how it worx 4 them.
That seems to work fine. Thanks! Cheers, Ralf