[Freeswitch-dev] ESL Ruby/Lua extensions build/linking error

Philip.Pirozhkov at ontarget-group.com Philip.Pirozhkov at ontarget-group.com
Wed Apr 11 16:22:20 MSD 2012


Quoting Philip.Pirozhkov at ontarget-group.com:

I've figured out how to fix esl rubymod build for both Ruby 1.9 and 1.8
Patch attached.

BR, Phil

>
> BR, Phil
>
> Quoting Philip.Pirozhkov at ontarget-group.com:
>
>>
>> Patch attached.
>> I've removed esl_wrap.cpp here since it can always be recreated by swig.
>>
>> BR, Phil
>>
>> Quoting Philip.Pirozhkov at ontarget-group.com:
>>
>>> Ok, I screwed up a bit and forgot to call ./configure. But its output
>>> makes me sad:
>>> freeswitch]$ ./configuregit format-patch -o .    
>>> 6f87ac55d6db945f7004b528ef8cb0f3e6c0c6f9
>>> configure: error: cannot find install-sh, install.sh, or shtool in
>>> build/config "."/build/config
>>>
>>> Ok, forget it and let's get back to libs/esl and run
>>> make rubymod
>>>
>>> And here we go, ESL.so is finally here!
>>>
>>>
>>> I'll generalise ruby 1.8/1.9 path configuration and will attach a patch.
>>>
>>> BR, Phil
>>>
>>> Quoting Philip.Pirozhkov at ontarget-group.com:
>>>
>>>> Okay, I've figured out how to point ld to these ruby libs, and the
>>>> error is completely different and it's related to missing ESL.so we are
>>>> referring to in these buildfiles.
>>>>
>>>>
>>>> So, aside from all these makefile patches:
>>>>
>>>> 1. Output of autoconf:
>>>> freeswitch]$ autoconf
>>>> configure.in:122: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call
>>>> detected in body
>>>> ../../lib/autoconf/lang.m4:194: AC_LANG_CONFTEST is expanded from...
>>>> ../../lib/autoconf/general.m4:2591: _AC_COMPILE_IFELSE is expanded from...
>>>> ../../lib/autoconf/general.m4:2607: AC_COMPILE_IFELSE is expanded from...
>>>> ../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
>>>> ../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
>>>> ../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from...
>>>> configure.in:122: the top level
>>>> configure.in:16: error: possibly undefined macro: AM_INIT_AUTOMAKE
>>>>    If this token and others are legitimate, please use m4_pattern_allow.
>>>>    See the Autoconf documentation.
>>>> configure.in:140: error: possibly undefined macro: AM_PROG_CC_C_O
>>>> configure.in:141: error: possibly undefined macro: AC_PROG_LIBTOOL
>>>> configure.in:356: error: possibly undefined macro: AM_CONDITIONAL
>>>>
>>>> 2. Output of automake http://pastebin.com/XFFkNxVg
>>>>
>>>> Or can anybody send me an ESL.so please?
>>>>
>>>> BR, Phil
>>>>
>>>>
>>>> Quoting Philip.Pirozhkov at ontarget-group.com:
>>>>
>>>>> Forgot to mention I'm using latest stable Ruby 1.9.3-p0
>>>>> Seems that LOCAL_LDFLAGS is not getting what it expected to, the  
>>>>>  result is
>>>>> "-lpthread -lrt -ldl -lcrypt -lm", while it's expecting to get a ruby
>>>>> lib dir, prefix it with "-L" and go. But fixing that doesn't help also.
>>>>>
>>>>> I've tried with Ruby 1.8.7 (with -I and -L patches to makefile only):
>>>>>
>>>>> ruby]$ make
>>>>> swig -module ESL -ruby -c++ -DMULTIPLICITY -I../src/include -o
>>>>> esl_wrap.cpp ../ESL.i
>>>>> g++   -I/home/pirj/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/i686-linux
>>>>> -I../src/include -c esl_wrap.cpp -o esl_wrap.o
>>>>> g++  esl_wrap.o  -L/home/pirj/.rvm/rubies/ruby-1.8.7-p352/lib -o  
>>>>>    ESL.so -L.
>>>>> /usr/lib/gcc/i686-pc-linux-gnu/4.7.0/../../../crt1.o: In   
>>>>> function   `_start':
>>>>> (.text+0x18): undefined reference to `main'
>>>>> esl_wrap.o: In function `rb_class_of':
>>>>> esl_wrap.cpp:(.text+0x9e3): undefined reference to `rb_cFixnum'
>>>>> esl_wrap.cpp:(.text+0x9f0): undefined reference to `rb_cNilClass'
>>>>> esl_wrap.cpp:(.text+0x9fd): undefined reference to `rb_cFalseClass'
>>>>> ...
>>>>>
>>>>>
>>>>> P.S. ArchLinux, kernel 3.2.14, gcc 4.7.0, SWIG 2.0.4, ld 2.22.0
>>>>>
>>>>> Any hints?
>>>>>
>>>>> BR, Phil
>>>>>
>>>>> Quoting Philip.Pirozhkov at ontarget-group.com:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Trying to build ruby and lua extensions from freeswitch/libs/esl:
>>>>>> lua]$ make
>>>>>> g++    -Wno-unused-function -c esl_wrap.cpp -o esl_wrap.o
>>>>>> esl_wrap.cpp:1510:17: fatal error: esl.h: No such file or directory
>>>>>> compilation terminated.
>>>>>> make: *** [esl_wrap.o] Error 1
>>>>>>
>>>>>> this can be fixed adding
>>>>>> -I../src/include to esl_wrap.o task
>>>>>>
>>>>>> but has ld error then:
>>>>>> lua]$ make
>>>>>> g++    -Wno-unused-function -I../src/include -c esl_wrap.cpp -o  
>>>>>>    esl_wrap.o
>>>>>> g++  esl_wrap.o  -llua -lpthread -o ESL.so -L.
>>>>>> /usr/lib/gcc/i686-pc-linux-gnu/4.7.0/../../../crt1.o: In     
>>>>>> function   `_start':
>>>>>> (.text+0x18): undefined reference to `main'
>>>>>> esl_wrap.o: In function `_wrap_new_ESLevent__SWIG_0':
>>>>>> esl_wrap.cpp:(.text+0x3974): undefined reference to
>>>>>> `ESLevent::ESLevent(char const*, char const*)'
>>>>>> esl_wrap.o: In function `_wrap_new_ESLevent__SWIG_1':
>>>>>> ... (tl;dr)
>>>>>>
>>>>>>
>>>>>> Same with ruby (even worse), it was failing to find ruby.h and
>>>>>> ruby/config.h. I got make esl_wrap.cpp task fixed
>>>>>> http://pastebin.com/uKFBZVF3
>>>>>>
>>>>>> but there's an ld error again:
>>>>>>
>>>>>> $ make
>>>>>> g++  esl_wrap.o  -lpthread -lrt -ldl -lcrypt -lm   -L.  -rdynamic
>>>>>> -Wl,-export-dynamic -o ESL.so -L.
>>>>>> /usr/lib/gcc/i686-pc-linux-gnu/4.7.0/../../../crt1.o: In     
>>>>>> function   `_start':
>>>>>> (.text+0x18): undefined reference to `main'
>>>>>> esl_wrap.o: In function `rb_class_of':
>>>>>> esl_wrap.cpp:(.text+0x9ed): undefined reference to `rb_cFixnum'
>>>>>> esl_wrap.cpp:(.text+0x9fa): undefined reference to `rb_cTrueClass'
>>>>>>
>>>>>> Anyone successful with this stuff?
>>>>>> I'm not experienced with GCC stuff at all.
>>>>>> It would be very nice to pack this Ruby ESL to a gem (ruby       
>>>>>> package  manager).
>>>>>>
>>>>>> BR, Phil
>>>>>>
>>>>>> _________________________________________________________________________
>>>>>> Professional FreeSWITCH Consulting Services:
>>>>>> consulting at freeswitch.org
>>>>>> http://www.freeswitchsolutions.com
>>>>>>
>>>>>> 
>>>>>> 
>>>>>>
>>>>>> Official FreeSWITCH Sites
>>>>>> http://www.freeswitch.org
>>>>>> http://wiki.freeswitch.org
>>>>>> http://www.cluecon.com
>>>>>>
>>>>>> FreeSWITCH-dev mailing list
>>>>>> FreeSWITCH-dev at lists.freeswitch.org
>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>>>>> http://www.freeswitch.org
>>>>>>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-rubymod-build-fixed-and-unified-for-ruby-1.8-1.9.patch
Type: text/x-patch
Size: 1467 bytes
Desc: not available
Url : http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20120411/c3c71345/attachment.bin 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list