Linkage order in Linux

Eirik Byrkjeflot Anonsen eirik@opera.com
Thu Feb 11 14:06:00 GMT 2010


michael kapelko <kornerr@gmail.com> writes:

> 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?

This may be your problem.  If libGL also has a glCreateShader , horde3D
may be getting the wrong one.  In particular, if libGL's glCreateShader
is a function (in the text section), horde3D will now probably treat
that function as a function pointer variable and dereference it
(probably trying to write the address of the glCreateShader function
into the glCreateShader variable.)

eirik



More information about the Binutils mailing list