[Theora-dev] linking, exported symbols

Conrad Parker conrad at metadecks.org
Thu Aug 4 21:31:38 PDT 2005


On Wed, Aug 03, 2005 at 03:45:47PM +0200, Michael Smith wrote:
> > 1) namespace all exported symbols.
> 
> Well, my point (or one of them) was that quantize() really shouldn't
> be an exported symbol AT ALL. But I don't know enough about the
> details of ELF linking to know what to call what we actually want
> (i.e. visible internally to the rest of the library, but not
> exported).
> 
> > 2) explicitly export API symbols.
> 
> The liboggz-style approach looks ok too - want to implement for
> libtheora? I'm going to guess we have a similar problem with
> libvorbis, though I haven't checked - I don't think we have any linker
> magic there.

ok, done for libtheora in changeset:9699

  add Version_script listing exported symbols for GNU (ELF only) and
  Solaris ld.

  * For background discussion, see:
  http://lists.xiph.org/pipermail/theora-dev/2005-August/002823.html

  * For details on version-script, see:
  http://www.gnu.org/software/binutils/manual/ld-2.9.1/html_node/ld_25.html

You will need to rebuild from ./configure (ie. autogen.sh).

All exported functions are listed in lib/Version_script.in. This list
was made by inspection of include/theora/theora.h. If any symbols which
should be exported are missing, they should be included in both the
header and the version script.

Please test against your applications. The expected behaviour is that
this will resolve namespace clashes such as that of quantize(), but also
break applications which use undocumented functions. If there's a reason
for using an undocumented function, speak up.

cheers :-)

Conrad.


More information about the Theora-dev mailing list