[SR-Users] Failure to load module db_mysql.so due to undefined symbol: log

Pratab Ali Pratab.Ali at ACULAB.COM
Tue Apr 13 15:04:44 CEST 2010


Hello,
 
I have installed from source version 3.0.1 of Kamailio on an OpenSuSE 10
Linux system.
 
Currently I am attempting to enable persistence in my Kamailio with the
help of MySQL.
 
In the config file kamailio.cfg I have enabled MySQL as follows
 
            #!define WITH_MYSQL
 
In the config file db_mysql.so is the first module to be loaded by
calling loadmodule, but the module fails to load. 

By turning, Kamailio, debugging on I get the following explanation.
 
 0(9858) DEBUG: <core> [sr_module.c:382]: load_module: trying to load
</usr/local/lib/kamailio/modules/db_mysql.so>
 0(9858) ERROR: <core> [sr_module.c:390]: ERROR: load_module: could not
open module </usr/local/lib/kamailio/modules/db_mysql.so>:
/usr/local/lib/kamailio/modules/db_mysql.so: undefined symbol: log

Using the unix/linux tool 'nm' I see the following.

	mindy:~/tmp # nm /usr/local/lib/kamailio/modules/db_mysql.so  |
grep log
      	   U getlogin@@GLIBC_2.0
	         U log
	001a6e40 R log_10
	001e5d00 D log_10_int
	         U log_level_info
	         U log_stderr
	         U syslog@@GLIBC_2.0

And for sure the capital 'U' means undefined. I have also searched the
source code that came with the kamailio package, for definitions of
'log'. And it also looks like I'll be in trouble later for
log_level_info, log_level_stderr and syslog are undefined too. However,
log_level_info I have just found in source files in the kamailio
package. So, why isn't it linking in?

Unfortunately, searching on the internet I have not yet come across a
forum post that tackles the above issue. As, I suspect everyone else has
got the build right.

Have I built db_mysql.so incorrectly? Though I built it using the make
files that came with the package.

Is it a case of linking in the appropriate libraries to resolve these
undefined symbols?

Finally, I have a colleague who has used the same version of kamailio
but installed on a Debian lenny distro. He has been successful in
getting db_mysql loaded and persistence enabled. However, he has an
older version of mysql (by only one minor-version number) though. Having
looked that the changes' history for the two mysql versions, I see no
obvious reasons that could be the cause of my failure.

By comparing notes, he did nothing too different than I did. We both
followed the instructions in the INSTALL and README files.

There is no particular reason for me using OpenSuSE 10 other than it was
already installed and the computer was not being used by anyone. I am
considering installing Debian Lenny on my computer to match my
colleague, would this be prudent or a waste of time? i.e I may face my
same problem because I'm missing a stage?

Regards and thank you, in advance, for any help given.

Pratab
 






More information about the sr-users mailing list