Re: [Freeswitch-dev] ESL Ruby/Lua extensions build/linking error
Quoting Philip.Pirozhkov@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@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@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@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@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@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@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
Sorry for being stupid and confusing everyone, ESL luamod builds fine. But ESL rubymod build from mainline fails, and my patch fixes that. It would be very nice to apply it upstream. BR, Phil Quoting Philip.Pirozhkov@ontarget-group.com:
Quoting Philip.Pirozhkov@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@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@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@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@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@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@freeswitch.org > http://www.freeswitchsolutions.com > > FreeSWITCH-powered IP PBX: The CudaTel Communication Server > http://www.cudatel.com > > Official FreeSWITCH Sites > http://www.freeswitch.org > http://wiki.freeswitch.org > http://www.cluecon.com > > FreeSWITCH-dev mailing list > FreeSWITCH-dev@lists.freeswitch.org > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev > http://www.freeswitch.org >
On 04/11/2012 03:34 PM, Philip.Pirozhkov@ontarget-group.com wrote:
Sorry for being stupid and confusing everyone, ESL luamod builds fine. But ESL rubymod build from mainline fails, and my patch fixes that. It would be very nice to apply it upstream.
Although this is the -dev list and not the -users list I'm assuming that the way to handle patches is still the same: please create a ticket on Jira and attach the patch. If the guideline of creating a Jira for patches does not apply to the -dev list then please accept my apologies for the noise. Regards, Patrick
It applies... Patches, bug reports etc should always got to a Jira ticket. This allows us to track the patch and any discussion along with it. Also if for whatever reason there are multiple iterations of a patch prior to it being committed it can be seen there K On 4/11/12 8:44 AM, "Patrick Lists" <freeswitch-list@puzzled.xs4all.nl> wrote:
On 04/11/2012 03:34 PM, Philip.Pirozhkov@ontarget-group.com wrote:
Sorry for being stupid and confusing everyone, ESL luamod builds fine. But ESL rubymod build from mainline fails, and my patch fixes that. It would be very nice to apply it upstream.
Although this is the -dev list and not the -users list I'm assuming that the way to handle patches is still the same: please create a ticket on Jira and attach the patch.
If the guideline of creating a Jira for patches does not apply to the -dev list then please accept my apologies for the noise.
Regards, Patrick
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
participants (3)
-
Ken Rice
-
Patrick Lists
-
Philip.Pirozhkov@ontarget-group.com