Re: Runtime Link-Loader Behavior and ODR (Is this a Bug?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 27, 2010 at 12:23 AM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote:
> Jeffrey Walton <noloader@xxxxxxxxx> writes:
>
>> I've familiarized myself with ISO/IEC 14882 [1] and section 3.5
>> Program and Linkage. If a variable (g_Global above) satisfies
>> paragraph/clause (9) (ie, names using external linkage in different
>> scopes denotes the same object), where is it stated that constructors
>> and destructors will run multiple times? I have not found anywhere in
>> the standard where an object's constructor and destructors should be
>> executed multiple times (cf, Section 12 Special member functions,
>> Subsection 1, Constructors).
>
> The C++ standard doesn't cover shared libraries, so this is all outside
> the scope of the standard.
>
> That said, I don't think that constructors should run multiple times in
> this scenario, and I really can not explain what you are seeing.  Can
> you construct a small self-contained example with a series of commands
> to run to show the problem?
My simple test cases using Foo and Bar cannot duplicate. Using a live
libcryptopp can cause a crash with dlopen and friends, but I have not
been able to reduce it to something useful for a bug report.

Possibly related: I did an audit of all SOs on a 'stock plus some'
Ubuntu installation. 'plus some' includes the tool chain, emacs,
OpenOffice and a few others. Nearly 300 of the 3500 crashed on a
dlopen/dlclose cycle. I can't explain the [nearly] 10% failure rate,
but I have not looked for the cause either.

Jeff



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux