gogasca
gogasca

Reputation: 10058

Freeswitch 1.6 installation for ESL python

I'm running Freeswitch 1.6 and Mac 10.10.5 My Freeswitch server will be in AWS and need to install Python ESL module in my local environment to start development using ESL. I havent been able to find ESL module. I got the whole source and tried to build only Python library.

I used this instructions.

git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh -j
./configure 
cd /usr/src/freeswitch/libs/esl

When I go to libs/esl folder and type:

make pymod -v

I get:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

When I run:

make pymod

I get this error:

/Applications/Xcode.app/Contents/Developer/usr/bin/make MYLIB=".././.libs/libesl.a" SOLINK="-shared -Xlinker -x" CFLAGS="-I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/esl/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/libteletone/src -Werror -DMACOSX -DHAVE_OPENSSL" CXXFLAGS="-I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/esl/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/src/include -I/Users/spicyramen/Documents/OpenSource/Development/freeswitch.git/libs/libteletone/src -fPIC" CXX_CFLAGS="" -C python
c++ -shared -Xlinker -x esl_wrap.o .././.libs/libesl.a `python ./python-config --ldflags` -o _ESL.so -L. 
ld: internal error: atom not found in symbolIndex(__ZN24SWIG_Python_Thread_Allow3endEv) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [_ESL.so] Error 1
make: *** [pymod] Error 2

In my Makefile I have this:

PYTHON = /Users/spicyramen/anaconda/bin/python
PYTHON_CFLAGS = -I/Users/spicyramen/anaconda/include/python2.7 -I/Users/spicyramen/anaconda/include/python2.7 -fno-strict-aliasing -I/Users/spicyramen/anaconda/include  -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
PYTHON_LDFLAGS = -L/Users/spicyramen/anaconda/lib -ldl -framework CoreFoundation -lpython2.7
PYTHON_SITE_DIR = /Users/spicyramen/anaconda/lib/python2.7/site-packages

Upvotes: 2

Views: 713

Answers (1)

gogasca
gogasca

Reputation: 10058

The following solution solved it for me:

From https://freeswitch.org/jira/browse/ESL-92

There is a bug in the ld command that ships with Mac OS X post Mavericks, due to which the "-x" flag strips extra symbols. The bug is described here -x link flag causing link errors on Mac OSX 10.9 (bug?) (I've filed a ticket upstream https://llvm.org/bugs/show_bug.cgi?id=23337).

Workraround:

Remove the "-x" flag when linking _ESL.so

cd libs/esl 
sed -i '' 's/\(SOLINK = .*\)-x/\1/p' Makefile 
make pymod 

Upvotes: 2

Related Questions