Andreas Fink just found the issue. It was a 32/64 bit issue with the server_type struct not being defined on any headers.
For example on sqlbox_mysql.h: #ifdef HAVE_MYSQL #include "gw/msg.h" #include "sqlbox_sql.h" struct server_type *sqlbox_init_mysql(Cfg* cfg); <----- Added this line void sql_save_msg(Msg *msg, Octstr *momt); ... I'm fixing it on the rest of the db engines and I'll commit a fix soon. Thanks again Andreas! -- Alejandro Guerrieri aguerri...@kannel.org On 18/02/2011, at 13:25, Alejandro Guerrieri wrote: > Perhaps someone could help me out with this weird issue. > > I'm trying to run SqlBox on OSX Snow Leopard, and while it compiles fine, I'm > getting a segmentation fault when running it. I've fired up gdb and this is > what I've got: > > (gdb) run /etc/kannel/sqlbox.conf > Starting program: /usr/local/sbin/sqlbox /etc/kannel/sqlbox.conf > Reading symbols for shared libraries .+++++++++. done > 2011-02-18 13:15:22 [6572] [0] INFO: Debug_lvl = -1, log_file = <none>, > log_lvl = 0 > 2011-02-18 13:15:22 [6572] [0] DEBUG: Kannel sqlbox version `svn-r4879'. > Build `Feb 18 2011 13:09:32', compiler `4.2.1 (Apple Inc. build 5664)'. > System Darwin, release 10.6.0, version Darwin Kernel Version 10.6.0: Wed Nov > 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386, machine i386. > Hostname sleekbook.local, IP 192.168.193.1. > Libxml version 2.7.3. > Using OpenSSL 0.9.7l 28 Sep 2006. > Compiled with MySQL 5.5.0-m2, using MySQL 5.5.0-m2. > Using native malloc. > > 2011-02-18 13:15:22 [6572] [0] INFO: Starting to log to file > /var/log/kannel/sqlbox.log level 0 > 2011-02-18 13:15:22 [6572] [0] INFO: Added logfile > `/var/log/kannel/sqlbox.log' with level `0'. > 2011-02-18 13:15:22 [6572] [0] INFO: MYSQL: Connected to server at localhost. > 2011-02-18 13:15:22 [6572] [0] INFO: MYSQL: server version 5.5.0-m2, client > version 5.5.0-m2. > > Program received signal EXC_BAD_ACCESS, Could not access memory. > Reason: KERN_INVALID_ADDRESS at address: 0x0000000000512268 > 0x000000010000123d in init_sqlbox [inlined] () at > /Users/aleg/ideaProjects/gateway-svn/addons/sqlbox/gw/sqlbox.c:746 > 746 gw_sql_enter(cfg); > > And a backtrace: > > (gdb) bt > #0 0x000000010000123d in init_sqlbox [inlined] () at > /Users/aleg/ideaProjects/gateway-svn/addons/sqlbox/gw/sqlbox.c:746 > #1 0x000000010000123d in main (argc=<value temporarily unavailable, due to > optimizations>, argv=0x7fff5fbff7b8) at sqlbox.c:790 > > > Line 746 is effectively: > > gw_sql_enter(cfg); > > This is mapped on sqlbox_sql.h, line 47: > > #define gw_sql_enter sql_type->sql_enter > > On my particular case, I'm using mysql, so that's defined on sqlbox_mysql.c > line 326: > > res->sql_enter = sqlbox_configure_mysql; > > If I replace gw_sql_enter by sqlbox_configure_mysql it works fine, but if > fails on the next indirect pointer (sql_leave, for instance). > > Here's a typical gcc line from the make output: > > gcc -DHAVE_CONFIG_H -I. -I.. -I../gw -I../gw -arch x86_64 -g -Os -pipe > -no-cpp-precomp -DDARWIN=1 -I/usr/local/include/kannel -arch x86_64 -g -Os > -pipe -no-cpp-precomp -DDARWIN=1 -L/Developer/SDKs/MacOSX10.5.sdk/usr/lib > -I/Developer/SDKs/MacOSX10.5.sdk/usr/include -D_LARGE_FILES= > -I/usr/include/libxml2 -I/usr/include/openssl -I/usr/local/mysql/include -MT > sqlbox.o -MD -MP -MF .deps/sqlbox.Tpo -c -o sqlbox.o sqlbox.c > > Do any of this rings any bells? The same code runs perfectly fine on Linux. > > Regards, > -- > Alejandro Guerrieri > aguerri...@kannel.org > > > >