There are quite a bunch of libraries in the archive that export more
symbols than they should, including all their private functions. I've
been made aware of such a problem in SDL_mixer, and took the time to
search for a solution.
Maybe everyone here already knows the problem and its solution, but I
can't remember hearing of it, and I guess it cannot hurt to remind
library packages maintainers to have a look at their objdump output, to
check whether they are in this case. Indeed, I found the solution is
rather trivial if the package uses libtool.
For example, it took one line in SDL_Mixer's Makefile.am:
libSDL_mixer_la_LDFLAGS = -export-symbols-regex Mix_.*
And voilà. Only the public symbols, which for SDL_Mixer are called
Mix_FooBar are exported, and the private symbols remain private.
This is simple and avoids quite some namespace problems. I suppose it
also improves dynamic linking performance by reducing the symbol table
size.
--
.''`. Josselin Mouette /\./\
: :' : josselin.mouette@ens-lyon.org
`. `' joss@debian.org
`- Debian GNU/Linux -- The power of freedom
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=