This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Linkage order in Linux
On Thu, Feb 11, 2010 at 01:27:12PM +0700, michael kapelko wrote:
> Grepping for "GLOBAL__I" gives this:
>
> kornerr@koren:/usr/local/lib$ nm libHorde3D.so | grep GLOBAL__I
> 00000000000927e3 t _GLOBAL__I_egAnimatables.cpp
> 0000000000097c75 t _GLOBAL__I_egAnimation.cpp
> 00000000000a1c44 t _GLOBAL__I_egCamera.cpp
> 00000000000a47ef t _GLOBAL__I_egCom.cpp
> 00000000000a8294 t _GLOBAL__I_egGeometry.cpp
> 00000000000b084c t _GLOBAL__I_egLight.cpp
> 00000000000b4371 t _GLOBAL__I_egMain.cpp
> 00000000000bc20c t _GLOBAL__I_egMaterial.cpp
> 00000000000c306c t _GLOBAL__I_egModel.cpp
> 00000000000cadf4 t _GLOBAL__I_egModules.cpp
> 00000000000ccdd4 t _GLOBAL__I_egParticle.cpp
> 00000000000d1682 t _GLOBAL__I_egPipeline.cpp
> 00000000000ddf70 t _GLOBAL__I_egPrimitives.cpp
> 00000000000ea6c7 t _GLOBAL__I_egRenderer.cpp
> 00000000000dffa7 t _GLOBAL__I_egRendererBase.cpp
> 00000000000f954c t _GLOBAL__I_egResource.cpp
> 00000000000fce59 t _GLOBAL__I_egScene.cpp
> 0000000000104e6b t _GLOBAL__I_egSceneGraphRes.cpp
> 000000000010833a t _GLOBAL__I_egShader.cpp
> 0000000000118102 t _GLOBAL__I_egTexture.cpp
> 000000000013511d t _GLOBAL__I_extension.cpp
> 000000000012f769 t _GLOBAL__I_terrain.cpp
> 0000000000128316 t _GLOBAL__I_utXMLParser.cpp
>
> According to man nm, t is just text. I guess that means no global
> constructors envolved.
Those *are* the global constructors. If you have some of them in the
other library then it's possible that there is some ordering
dependency. I did forget something though: Some of these functions
might be empty. You'll need to disassemble them to see.
--
Alan Modra
Australia Development Lab, IBM