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.