New nvidia drivers available
Justin T. Gibbs
gibbs at scsiguy.com
Sun Aug 15 08:16:07 PDT 2004
>> I thought that static constructor invocation was deterministic based
>> on link order. Does the C++ spec really indicate that the order of
>> construction can be random?
>
> I don't think the spec places any restrictions on constructor ordering.
> The problem here is that you get different behaviour depending on
> whether you link with libGL first followed by libpthread (in that case
> libpthread initialises first) or if you link in the other order (in
> which case libGL initialises first). As far as I can see, rtld calls
> the _init sections of each shared library in reverse order with the
> last library linked against being initialised first.
But such ordering restrictions also apply to things like weak symbols,
so I don't think that imposing a link order restriction to solve
this issue is really a problem.
>From my Microsoft days, I know that at least PowerPoint took advantage
of the known order of static constructor invocation. The splash screen
was executed from a static constructor in the first .o linked into the
executable. I'm just curious if this is something the C++ spec says
anything about. I'd be surprised if it didn't.
--
Justin
More information about the freebsd-current
mailing list