Hi all,
I'm tryng to use perl support into ivr plug-in. I've built this plugin
successfully but when I start sems, I receive this error:
(2473) ERROR: loadPlugIn (AmPlugIn.cpp:97): AmPlugIn::loadPlugIn: ivr.so:
undefined symbol: Perl_Tmarkstack_max_ptr
I'm using perl 5.8.4 on a slackware 10.0. Do you have suggestions?
thanks
Andrea
My ivr Makefile is:
plug_in_name = ivr
SCRIPT = Perl
#SCRIPT = Python
TTS = n
ASTERISK_COMPATIBLE = n
ifeq ($(SCRIPT), Python)
#
# Python specific
# (no need to change this if you want to use perl)
#
# PYTHON_VERSION might also be 2.2
# do a ls /usr/include/python2.3/Python.h to see if it's there
PYTHON_VERSION = 2.3
# adjust to point to python include path
# can also be /usr/include/python$(PYTHON_VERSION)
# look for Python.h in the specified path
# Python prefix is what you configured python with
# if you built from source (e.g. ./configure --with-prefix=/usr/local)
# on debian it's often /usr, on SuSE /usr/local
PYTHON_PREFIX = /usr
PYTHON_DIR = $(PYTHON_PREFIX)/include/python$(PYTHON_VERSION)
PYTHON_LIBDIR = $(PYTHON_PREFIX)/lib/python$(PYTHON_VERSION)
# put used Python modules from lib-dynload here, e.g. time, mysql, _cvs.so etc.
PYTHON_DYNLOAD_MODULES = $(PYTHON_LIBDIR)/lib-dynload/time.so
PYTHON_module_cflags = -I$(PYTHON_DIR)
PYTHON_module_ldflags = -L$(PYTHON_LIBDIR)/config -lpython$(PYTHON_VERSION)
$(PYTHON_DYNLOAD_MODULES)
else
ifeq ($(findstring Perl, $(SCRIPT)), Perl)
#
# perl specific
#
# put used Perl modules here, e.g. time, mysql etc.
ifeq ($(SCRIPT), Perl)
PERL_DYNLOAD_MODULES =
else
PERL_DYNLOAD_MODULES = /usr/lib/perl5/5.8.4/i486-linux/auto/IO/IO.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Fcntl/Fcntl.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Socket/Socket.so \
/usr/lib/perl5/site_perl/5.8.4/i486-linux/auto/DBI/DBI.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Sys/Hostname/Hostname.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Sys/Syslog/Syslog.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Sys/Syslog/Syslog.so \
/usr/lib/perl5/site_perl/5.8.4/i486-linux/auto/Date/Calc/Calc.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/MIME/Base64/Base64.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/POSIX/POSIX.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Time/HiRes/HiRes.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Cwd/Cwd.so \
/usr/lib/perl5/site_perl/5.8.4/i486-linux/auto/Bit/Vector/Vector.so \
/usr/lib/perl5/site_perl/5.8.4/i486-linux/auto/DBD/mysql/mysql.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/Data/Dumper/Dumper.so \
/usr/lib/perl5/5.8.4/i486-linux/auto/File/Glob/Glob.so
endif
PERL_module_ldflags = `perl -MExtUtils::Embed -e ldopts` -DPERL_IMPLICIT_CONTEXT
$(PERL_DYNLOAD_MODULES)
PERL_module_cflags = -DIVR_PERL `perl -MExtUtils::Embed -e ccopts `
-DPERL_IMPLICIT_CONTEXT
else
$(error 'Script language $(SCRIPT) type not supported, options are Python,
Perl*')
endif
endif
ifeq ($(TTS), y)
#
# flite text to speech
#
# uncomment the next lines if you want to have flite text-to-speech
(ivr.say("Hello there"); )
FLITE_DIR = /usr/src/flite-1.2-release
ALT_FLITE_DIR = /usr/include/flite
IVR_TTS_module_ldflags = -L$(FLITE_DIR)/lib -lm -lflite_cmu_us_kal
-lflite_usenglish \
-lflite_cmulex -lflite
IVR_TTS_module_cflags = -I$(FLITE_DIR)/include -I$(ALT_FLITE_DIR)
-DIVR_WITH_TTS
endif
LOCAL_INCLUDES = -I$(FLITE_DIR)/lang/usenglish
LD_FLAGS = -ldl -lpthread -lutil -lm -Xlinker --export-dynamic -Xlinker
--no-strip-discarded
module_ldflags = -ldl -lpthread -lutil -lm -Xlinker --export-dynamic \
$(PYTHON_module_ldflags) \
$(IVR_TTS_module_ldflags) \
$(PERL_module_ldflags)
ifeq ($(ASTERISK_COMPATIBLE), y)
module_additional_cflags = -DIVR_ASTERISK_COMPATIBLE_IDLE
endif
# for perl support:
# -DIVR_PERL `perl -MExtUtils::Embed -e ccopts `
# for flite text-to-speech support -DIVR_WITH_TTS
module_cflags = \
$(PYTHON_module_cflags) \
$(IVR_TTS_module_cflags) \
$(PERL_module_cflags) \
$(module_additional_cflags)
include ../Makefile.app_module
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.