Re: New nvidia drivers available

From: Justin T. Gibbs <gibbs_at_scsiguy.com>
Date: Sun, 15 Aug 2004 09:16:00 -0600
>> 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
Received on Sun Aug 15 2004 - 13:16:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:06 UTC