I built under Solaris 2.6. Configure selected the Solaris linker
(/usr/ccs/bin/ld) to make shared libraries, but use gcc (2.95.2) for the
C compiler.

When the shared library libaduofile.so.0 is used, e.g. in xmms, I get
a message

ld.so.1: xmms: fatal: relocation error: file /opt/platform/lib/libaudiofile.so.0: 
symbol __eprintf: referenced symbol not found

This occurs because audiofile uses C assert() and gcc impliments this
via __eprintf() which is found in libgcc.a.

Rather than building the shared library as 

  /usr/ccs/bin/ld -G -h libGL.so.1 -o ...

One should use gcc with the -shared option, e.g.

  gcc -shared -G -h libGL.so.1 -o ... (same as before )

Also it would be nice to add a test of the shared library if shared
libraries are built, especially since discovery of the problem can be
hidden by the applications that use them and revealed at a time far
removed from build/install time.

I imagine this is not a problem on Linux boxes because __eprintf is 
part of their underlying runtime system. 

If you want me to suggest/develop a shared-object test and/or add code
to configure.in to handle properly let me know.


_______________________________________________
Mesa-bug maillist  -  [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-bug


_______________________________________________
Mesa-dev maillist  -  [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev

Reply via email to