Bug #2088 mysqlclient_r: compilation problem with support SSL
Submitted: 11 Dec 2003 1:12 Modified: 15 Jan 2004 3:27
Reporter: Vladimir Stepanov Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:4.0.16 OS:FreeBSD (FreeBSD 5.x)
Assigned to: Assigned Account CPU Architecture:Any

[11 Dec 2003 1:12] Vladimir Stepanov
Description:
Library 'mysqlclient_r.so' is incorrectly compiled with enabled SSL support.

How to repeat:
Apply the patch:

diff -ruN mysql-4.0.16.orig/libmysql_r/Makefile.am mysql-4.0.16/libmysql_r/Makefile.am
--- mysql-4.0.16.orig/libmysql_r/Makefile.am    Fri Oct 17 09:29:23 2003
+++ mysql-4.0.16/libmysql_r/Makefile.am Sat Nov  1 18:44:29 2003
@@ -19,7 +19,7 @@
 
 target = libmysqlclient_r.la
 target_defs = -DDONT_USE_RAID @LIB_EXTRA_CCFLAGS@
-## LIBS = @LIBS@
+LIBS = @CLIENT_LIBS@
 
 INCLUDES =     @MT_INCLUDES@ -I$(srcdir)/../include -I../include \
                -I$(srcdir)/.. -I$(top_srcdir) -I.. $(openssl_includes)
diff -ruN mysql-4.0.16.orig/libmysql_r/Makefile.in mysql-4.0.16/libmysql_r/Makefile.in
--- mysql-4.0.16.orig/libmysql_r/Makefile.in    Fri Oct 17 09:29:37 2003
+++ mysql-4.0.16/libmysql_r/Makefile.in Sat Nov  1 18:44:15 2003
@@ -321,7 +321,7 @@
 DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
 CPPFLAGS = @CPPFLAGS@
 LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
+LIBS = @CLIENT_LIBS@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/conf_to_src.Po $(DEPDIR)/errmsg.Plo \
 @AMDEP_TRUE@   $(DEPDIR)/get_password.Plo $(DEPDIR)/libmysql.Plo \
[11 Dec 2003 1:13] Vladimir Stepanov
change subject
[13 Dec 2003 19:21] Michael Widenius
What is the problem/symptom you have with openssl and libmysql_r ?

The code in Makefile.am was correct as @LIBS@ contains the libraries needed for a threaded library/application and @CLIENT_LIBS@ is for a non threaded application.

I just compiled libmysqlclient_r and openssl without any problems on my SuSe Linux 8.2 computer.
[15 Dec 2003 3:27] Vladimir Stepanov
Yes, it is a problem 'mysql_r' with statically linked library 'openssl'.
The source code of 'mysql_r' can be linked without problems, but its
further use by applications is impossible.

As an example, at use python the module - MySQLdb-0.9.2 the program interrupts with the message on a mistake:
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local/lib/python2.3/site-packages/MySQLdb/__init__.py", line 27, in ?
    import _mysql
ImportError: /usr/local/lib/mysql/libmysqlclient_r.so.12: Undefined symbol "ERR_get_error_line_data"

At viewing the size of files discourages discrepancy a little:
# ls -l libmysqlclient.so.12 libmysqlclient_r.so.12
-rwxr-xr-x  1 root  wheel  1438412 Dec 15 12:58 libmysqlclient.so.12
-rwxr-xr-x  1 root  wheel   289452 Dec 15 12:58 libmysqlclient_r.so.12
[14 Feb 2005 22:54] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".