James,

As I see, I�m not alone after all! It seems something is clashing between
RedHat 9/9.1 and the configure stuff...

I also noticed that the check that fails on the configure script runs ok
from the command line. Pretty weird huh? :)

I'll be trying today to find out where the problem is. I'll post the list if
I find anything.

Regards,

----- Original Message ----- 
From: "James Coleman" <[EMAIL PROTECTED]>
To: "Alejandro Guerrieri" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, August 26, 2004 3:42 PM
Subject: Re: Problem compiling with MySql support


> Hi Alejandro, Stipe,
>
> I think I see the same thing as Alejandro?
> kannel 1.3.2 and cvs head with mysql, redhat 9.1.
>
> From Alejandro's original msg:
>
> >Configuring DB support ...
> >checking whether to compile with MySQL support... searching
> >checking for mysql_config... /usr/bin/mysql_config
> >checking mysql version... 3.23.58
> >checking mysql
> >libs...  -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm
> >checking for mysql_init in -lmysqlclient... no
> >configure: error: Unable to find MySQL client libraries
>
> And me:
>
> [EMAIL PROTECTED] ~/src/kannel/gateway-cvshead/$
./configure --disable-ssl --with-mysql --with-mysql-dlr=/usr
> creating cache ./config.cache
> checking cvs checkout date... 20040826
> .....
>
> Configuring DB support ...
> checking whether to compile with MySQL support... searching
> checking for mysql_config... /usr/bin/mysql_config
> checking mysql version... 3.23.58
> checking mysql
libs...  -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm
> checking for mysql_init in -lmysqlclient... no
> configure: error: Unable to find MySQL client libraries
>
> [EMAIL PROTECTED] ~/src/kannel/gateway-cvshead/$ tail -n 20 config.log
> configure:4500: checking for mysql_init in -lmysqlclient
> configure:4519: gcc -o
conftest  -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -I/usr/include/libxml2   -rdynam
ic
conftest.c -lmysqlclient  -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl
 -lm  -lresolv -lnsl -lm  -lpthread -L/usr/lib -lxml2 -lz -lm 1>&5
> /usr/bin/ld: cannot find -lmysqlclient
> collect2: ld returned 1 exit status
> configure: failed program was:
> #line 4508 "configure"
> #include "confdefs.h"
> /* Override any gcc2 internal prototype to avoid an error.  */
> /* We use char because int might match the return type of a gcc2
>     builtin and then its argument prototype would still apply.  */
> char mysql_init();
>
> int main() {
> mysql_init()
> ; return 0; }
>
> [EMAIL PROTECTED] ~/src/kannel/gateway-cvshead/$ ls /usr/lib/mysql
> libdbug.a         libmysqlclient_r.a          libmysqlclient.so.10.0.0
> libheap.a         libmysqlclient_r.so         libmystrings.a
> libmerge.a        libmysqlclient_r.so.10      libmysys.a
> libmyisam.a       libmysqlclient_r.so.10.0.0  libnisam.a
> libmyisammrg.a    libmysqlclient.so
> libmysqlclient.a  libmysqlclient.so.10
>
> [EMAIL PROTECTED] ~/src/kannel/gateway-1.3.2rc1/$ ls /usr/include/mysql/
> dbug.h      my_config.h  my_no_pthread.h  mysql.h          sslopt-case.h
> errmsg.h    my_global.h  my_pthread.h     mysql_version.h
sslopt-longopts.h
> m_ctype.h   my_list.h    mysql_com.h      my_sys.h         sslopt-usage.h
> m_string.h  my_net.h     mysqld_error.h   raid.h           sslopt-vars.h
>
>
> The configure options for mysql in 1.2.1 were different ....
>
> [EMAIL PROTECTED] ~/src/kannel/gateway-1.2.1/$
>
./configure --disable-ssl --with-mysql=/usr --enable-mysql --with-dlr=mysql
>
> Configuring DB support ...
> checking whether to compile with MySQL support... searching in /usr
> checking for /usr/include/mysql/mysql.h... yes
> checking for mysql/mysql.h... yes
> checking for mysql/mysql_com.h... yes
> checking for mysql/mysql_version.h... yes
> checking for mysql_init in -lmysqlclient... yes
> checking whether to compile with MySQL support... yes
> checking whether to compile with LibSDB support... disabled
>
> I just did that now and build so mysql definately alright.
>
>
>
> I argued a bit with the configure script and looked inside it.
> I do think there is an error there ... but well my poor little head is
getting confused!
> Where kannel configure is testing mysql and figuring out stuff
>  it does some tests on gcc and ... well it is a bit convoluted/complicated
>  right there and I'm struggling.
> But anyway in the configure gcc test for musql_init ... something slightly
>  weird happens.
>
>
>
>
> On the commandline with that c prog and confdefs.h the following line is
good:
>
> gcc -o
nftest  -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -I/usr/include/libxml2   -rdynamic
conftest.c -lmysqlclient  -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl
 -lm  -lresolv -lnsl -lm  -lpthread -L/usr/lib -lxml2 -lz -lm
>
> doesn't report "/usr/bin/ld: cannot find -lmysqlclient"
>
> BUT that is what seems to happen when that gcc line is called from the
configure script.
>
> SO ... ??? could it be the  -L'/usr/lib/mysql'  those single quotes?
> I've looked but nasty to find exactly where that is set in $LIBS
>
> If I do a HUGE cheat and after the test force it to be a success then
> kannel build is good. (last two lines of snippet here:)
>
>
>         echo $ac_n "checking for mysql_init in -lmysqlclient""... $ac_c"
1>&6
> echo "configure:4500: checking for mysql_init in -lmysqlclient" >&5
> ac_lib_var=`echo mysqlclient'_'mysql_init | sed 'y%./+-%__p_%'`
> if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
>   echo $ac_n "(cached) $ac_c" 1>&6
> else
>   ac_save_LIBS="$LIBS"
> LIBS="-lmysqlclient  $MYSQL_LIBS  $LIBS"
> cat > conftest.$ac_ext <<EOF
> #line 4508 "configure"
> #include "confdefs.h"
> /* Override any gcc2 internal prototype to avoid an error.  */
> /* We use char because int might match the return type of a gcc2
>     builtin and then its argument prototype would still apply.  */
> char mysql_init();
>
> int main() {
> mysql_init()
> ; return 0; }
> EOF
> if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link)
2>&5; } && test -s conftest${ac_exeext}; then
>   rm -rf conftest*
>   eval "ac_cv_lib_$ac_lib_var=yes"
> else
>   echo "configure: failed program was:" >&5
>   cat conftest.$ac_ext >&5
>   rm -rf conftest*
>   eval "ac_cv_lib_$ac_lib_var=no"
> fi
> rm -f conftest*
> LIBS="$ac_save_LIBS"
>
> fi
>
> echo james cheat Force this test to pass. YEAST EYS YES YES!
> eval "ac_cv_lib_$ac_lib_var=yes"
>
>
> Make sure to:
>  rm config.cache
>   after editing configure file.
>
>
>
> For now I give up on trying to figure out why the gcc line works on
commandline and not
> in configure script. :(
>
>
> James.
>
>
>


Reply via email to