Yep, I agree it would be good if it's fixed. The "sed" method I've
tried worked for me, it's just a little mod on one line of the script
and it shouldn't break anything in other platforms.

BTW, 1.3.2 and MySQL DLR are working like a charm on RH9.

Regards,


On Tue, 31 Aug 2004 10:14:12 +0100, James Coleman <[EMAIL PROTECTED]> wrote:
> Brilliant Alejandro! You and Stipe did all the work. Not me.
> 
> mysql_config
> Usage: /usr/bin/mysql_config [OPTIONS]
> Options:
>        --cflags        [-I'/usr/include/mysql']
>        --libs          [-L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm]
>        --socket        [/var/lib/mysql/mysql.sock]
>        --port          [3306]
>        --version       [3.23.58]
> 
> Hmmm. The configure for 1.2.1 works with this.
> I wonder does it use mysql_config ?
> yes. And lots of the code in configure looks the same ... but I boggle
> again. :(   Possibly in 1.2.1 the mysql_config check fails but
> a later check sets up mysql libs and vars correctly ... urngh.
> 
> I went through the configure script for 1.2.1 to try see what was happening
> and how it works there but it would take me more time that I don't have now.
> I think it would be good to fix this in the configure as I
> guess it happens at least on all redhat systems.
> 
> James.
> 
> On Fri, Aug 27, 2004 at 02:23:39AM +0200, Alejandro Guerrieri wrote:
> > Hi list,
> >
> > I've finally managed to find the problem compiling MySQL support on RedHat
> > 9.
> >
> > The error comes from the single quotes around the library path on
> > mysql_config output.
> >
> > James, you were right on the nail!:
> > >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
> >
> > :)
> >
> > It seems at least that version of mysql (RedHat RPMs: mysql-3.23.58-1.9 and
> > mysql-devel-3.23.58-1.9) output libraries that way...
> >
> > ]$ mysql_config
> > Usage: /usr/bin/mysql_config [OPTIONS]
> > Options:
> >         --cflags        [-I'/usr/include/mysql']
> >         --libs
> >          [-L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm]
> >         --socket        [/var/lib/mysql/mysql.sock]
> >         --port          [3306]
> >         --version       [3.23.58]
> >
> > And more specifically:
> >
> > ]$ mysql_config --libs
> > -L'/usr/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm
> >
> > Probably a silly status bug on mysql_config output. Fortunately, a very
> > easy-to-solve one!
> >
> > Looking at configure.log, those buggers are there on -L'/usr/lib/mysql'
> >
> > configure:4459: checking for mysql_init in -lmysqlclient
> > configure:4478: 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
> >
> > The funny part is, if you run that line on the terminal, the shell mangles
> > things somehow and it works, but from the sh script it causes trouble.
> >
> > So, what I did was to modify the configure script on line 4453:
> >
> > Before:
> >         MYSQL_LIBS="$($MYSQL_CONFIG --libs)"
> >
> > After:
> >         MYSQL_LIBS="$($MYSQL_CONFIG --libs | sed 's/\x27//g')"
> >
> > Very simple: I've run the output for mysql_config through "sed" and removed
> > hex character 27 (the single quote character) globally.
> >
> > After that, it compiled like a charm!
> >
> > I also did the mod on configure.in and tried to run autoconf, but it
> > complained about libobjs:
> >
> > ]$ autoconf
> > configure.in:135: error: do not use LIBOBJS directly, use AC_LIBOBJ (see
> > section `AC_LIBOBJ vs LIBOBJS'
> >       If this token and others are legitimate, please use m4_pattern_allow.
> >       See the Autoconf documentation.
> >
> > So I left the excercise for you autoconf gurus ;)
> >
> > Anyway, the change to make on configure.in is on line 798:
> >
> > Before:
> >         MYSQL_LIBS="$($MYSQL_CONFIG --libs)"
> >
> > After:
> >         MYSQL_LIBS="$($MYSQL_CONFIG --libs | sed 's/\x27//g')"
> >
> > (Sorry, I'm too lazy to make a diff just for this small mod ;)  )
> >
> > The mod could be applied harmlessly to any installation. If the single
> > quotes are missing (as they should be!) sed won�t change anything and it
> > will compile as always, so I suggest this (or at least an equivalent mod)
> > could be applied to CVS to allow to us RedHat 9 Kannellers to compile MySQL
> > support. Moreover, sed is used many times on the configure script, so it
> > won�t add any new dependencies.
> >
> > Hope it helps someone!
> >
> > Best regards and thank you all people who helped me to find the solution
> > (Stipe and James specially!)
> >
> >
> 
>

Reply via email to