c++/7748: Static objects in dynamic library with non-default priority not initialized

bangerth@dealii.org bangerth@dealii.org
Thu Dec 19 18:09:00 GMT 2002


Synopsis: Static objects in dynamic library with non-default priority not initialized

Responsible-Changed-From-To: unassigned->jsm28
Responsible-Changed-By: bangerth
Responsible-Changed-When: Thu Dec 19 18:09:06 2002
Responsible-Changed-Why:
    The last to change the respective code. If you feel you
    are not the right person to ask, I'll be happy to undo
    this.
State-Changed-From-To: open->analyzed
State-Changed-By: bangerth
State-Changed-When: Thu Dec 19 18:09:06 2002
State-Changed-Why:
    Confirmed. This directly contradicts what the documentation
    says.
    
    I can reproduce this also on x86 Linux. Looking at the
    assembler code, I see that everything is laid out, i.e.
    the __static_initialization_and_destruction_0(int, int)
    function is ok, and there are symbols _GLOBAL__I.NNNNN_t1
    and _GLOBAL__D.NNNNN_t1 for initialization and destruction
    of objects for each priority that is present.
    
    I don't know who is responsible to call these functions.
    If it is the linker, then it is not gccs fault. However,
    there is also the symbol _GLOBAL__I_t1 that only initializes
    the elements of one priority class, and if this is what
    the linker calls when loading the shared library, then
    the code for this function is wrong.
    
    I guess we need someone with more knowledge about this
    stuff here. Joseph, you were the last to touch the code,
    can you help?
    
    Thanks
    W.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7748



More information about the Gcc-prs mailing list