[CONC-58] Compile failure on CentOS 5 Created: 2013-10-15  Updated: 2013-10-20  Resolved: 2013-10-20

Status: Closed
Project: MariaDB Connector/C
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Todd Rinaldo Assignee: Georg Richter
Resolution: Fixed Votes: 0
Labels: None
Environment:

Stock CentOS 5 up to date
cmake version 2.8.12
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008



 Description   

I tried to build commit 101 so I could get DBD-mysql working.

CentOS 6 is compiling but CentOS 5 is getting the following errors:

[ 90%] Building C object unittest/libmariadb/CMakeFiles/dyncol.dir/dyncol.c.o
Linking C executable cs_conv
Linking C executable connection
Linking C executable basic-t
Scanning dependencies of target errors
[ 90%] Building C object unittest/libmariadb/CMakeFiles/errors.dir/errors.c.o
Linking C executable charset
[ 90%] ../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [unittest/libmariadb/cs_conv] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/cs_conv.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Building C object libmariadb/CMakeFiles/libmariadb.dir/__/zlib/inffast.c.o
../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
[ 91%] make[2]: *** [unittest/libmariadb/connection] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/connection.dir/all] Error 2
Building C object libmariadb/CMakeFiles/libmariadb.dir/__/zlib/inflate.c.o
[ 91%] Building C object libmariadb/CMakeFiles/libmariadb.dir/__/zlib/inftrees.c.o
Linking C executable dyncol
../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [unittest/libmariadb/basic-t] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/basic-t.dir/all] Error 2
[ 92%] Building C object libmariadb/CMakeFiles/libmariadb.dir/__/zlib/trees.c.o
../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [unittest/libmariadb/charset] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/charset.dir/all] Error 2
[ 92%] Building C object libmariadb/CMakeFiles/libmariadb.dir/__/zlib/uncompr.c.o
[ 93%] Building C object libmariadb/CMakeFiles/libmariadb.dir/__/zlib/zutil.c.o
../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [unittest/libmariadb/dyncol] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/dyncol.dir/all] Error 2
Linking C executable errors
../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [unittest/libmariadb/errors] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/errors.dir/all] Error 2
Linking C shared library libmariadb.so
CMakeFiles/libmariadb.dir/my_thr_init.c.o: In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [libmariadb/libmariadb.so.1] Error 1
make[1]: *** [libmariadb/CMakeFiles/libmariadb.dir/all] Error 2
Linking C executable cursor
../../libmariadb/libmariadbclient.a(my_thr_init.c.o): In function `my_thread_end':
/home/rpmbuild/rpm-build/BUILD/mariadb-native-client/libmariadb/my_thr_init.c:151: undefined reference to `ERR_remove_thread_state'
collect2: ld returned 1 exit status
make[2]: *** [unittest/libmariadb/cursor] Error 1
make[1]: *** [unittest/libmariadb/CMakeFiles/cursor.dir/all] Error 2
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.76321 (%build)



 Comments   
Comment by Georg Richter [ 2013-10-15 ]

Thanks for your report.

ERR_remove_thread_state was introduced in OpenSSL 1.0, so we need to call support deprecated function ERR_remove_state for older OpenSSL versions.

Comment by Todd Rinaldo [ 2013-10-15 ]

This seems to have fixed the problem

 
diff --git a/SOURCES/mariadb-native-client/libmariadb/my_thr_init.c b/SOURCES/mariadb-native-client/libmariadb/my_thr_init.c
index d3b02ec..bb0c2c3 100644
--- a/SOURCES/mariadb-native-client/libmariadb/my_thr_init.c
+++ b/SOURCES/mariadb-native-client/libmariadb/my_thr_init.c
@@ -148,7 +148,7 @@ void my_thread_end(void)
   if (tmp && tmp->initialized)
   {
 #ifdef HAVE_OPENSSL
-    ERR_remove_thread_state(NULL);
+    ERR_remove_state(NULL);
 #endif
 #if !defined(DBUG_OFF)
     if (tmp->dbug)
 

Comment by Georg Richter [ 2013-10-20 ]

Fixed in rev. 103

Generated at Thu Feb 08 03:02:34 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.