dlopen()/festival problem

Matthew Miller mattdm at mattdm.org
Mon Nov 10 17:44:42 UTC 2008


On Mon, Nov 10, 2008 at 04:24:54PM +0100, Jan Kratochvil wrote:
> The problem is in the festival libraries build.  They use the default
> visibility and their symbol `backtrace':
>   ./speech_tools/siod/slib.cc
>   LISP backtrace = NIL;
> is being overriden by the glibc function `backtrace':
>   /usr/include/execinfo.h
>   extern int backtrace (void **__array, int __size) __nonnull ((1));
> One apparently cannot write to a .text readonly section as it attempts to.
> 
> The package festival should be built with -fvisibility=hidden and specific
> global functions/variables marked by `__attribute__ ((visibility("default")))'
> as described in `man gcc' -fvisibility and
> http://people.redhat.com/drepper/dsohowto.pdf .
> 
> As a temporary workaround you may use dlopen() flag RTLD_DEEPBIND.
> BTW it is also more effective to use RTLD_LAZY than RTLD_NOW.

Can you file this in bugzilla so that I don't forget about it? I'm planning
to do a big update of festival after F10 is out the door.

-- 
Matthew Miller <mattdm at mattdm.org>
Senior Systems Architect 
Cyberinfrastructure Labs
Computing & Information Technology 
Harvard School of Engineering & Applied Sciences




More information about the fedora-devel-list mailing list