This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Linkage order in Linux
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.
Grepping for the function causing problem when -lGL is before -lHorde3D:
kornerr@koren:/usr/local/lib$ nm libHorde3D.so | grep "glCreateShader"
0000000000377aa8 B glCreateShader
According to man nm, the B means the symbol is in the uninitialized
data section. May be that's the reason?