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(a)mattdm.org>
Senior Systems Architect
Cyberinfrastructure Labs
Computing & Information Technology
Harvard School of Engineering & Applied Sciences