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