Description:
When running the "make" command for 1.0.5 C++ connector it fails with "ccpptests.o: wrong ELF class: ELFCLASS32".
Best Regards,
Patrick
Installation Details:
===================================
Solaris 10 x86_64 (Fresh Install)
mysql-5.1.39-solaris10-x86_64.pkg
Screen Dumps:
===================================
bash-3.00# make
[ 0%] Building CXX object driver/CMakeFiles/mysqlcppconn.dir/mysql_art_resultset.o
[ 1%] Building CXX object driver/CMakeFiles/mysqlcppconn.dir/mysql_art_rset_metadata.o
..................
[ 54%] Building CXX object test/CJUnitTestsPort/CMakeFiles/CJUnitTestsPort.dir/BaseTestFixture.o
"/Desktop/mysql-connector-c++-1.0.5/test/CJUnitTestsPort/BaseTestFixture.cpp", line 57: Warning: sqlProps hides testsuite::TestFixtureCommon::sqlProps.
1 Warning(s) detected.
[ 55%] Building CXX object test/CJUnitTestsPort/CMakeFiles/CJUnitTestsPort.dir/__/common/stringutils.o
..................
[ 67%] Building CXX object test/CJUnitTestsPort/CMakeFiles/CJUnitTestsPort.dir/compliance/UnbufferedRsStmtTest.o
Linking CXX executable CJUnitTestsPort
ld: fatal: file CMakeFiles/CJUnitTestsPort.dir/ccpptests.o: wrong ELF class: ELFCLASS32
ld: fatal: File processing errors. No output written to CJUnitTestsPort
*** Error code 1
The following command caused the error:
cd /Desktop/mysql-connector-c++-1.0.5/test/CJUnitTestsPort && /Desktop/cmake/bin/cmake -E cmake_link_script CMakeFiles/CJUnitTestsPort.dir/link.txt --verbose=
make: Fatal error: Command failed for target `test/CJUnitTestsPort/CJUnitTestsPort'
Current working directory /Desktop/mysql-connector-c++-1.0.5
*** Error code 1
The following command caused the error:
make -f test/CJUnitTestsPort/CMakeFiles/CJUnitTestsPort.dir/build.make test/CJUnitTestsPort/CMakeFiles/CJUnitTestsPort.dir/build
make: Fatal error: Command failed for target `test/CJUnitTestsPort/CMakeFiles/CJUnitTestsPort.dir/all'
Current working directory /Desktop/mysql-connector-c++-1.0.5
*** Error code 1
The following command caused the error:
make -f CMakeFiles/Makefile2 all
make: Fatal error: Command failed for target `all'
Manual cmake with verbose=9
==================================
bash-3.00# cd /Desktop/mysql-connector-c++-1.0.5/test/CJUnitTestsPort && /Desktop/cmake/bin/cmake -E cmake_link_script CMakeFiles/CJUnitTestsPort.dir/link.txt --verbose=9
/usr/bin/CC -xO4 -g -KPIC CMakeFiles/CJUnitTestsPort.dir/ccpptests.o CMakeFiles/CJUnitTestsPort.dir/BaseTestFixture.o CMakeFiles/CJUnitTestsPort.dir/__/common/stringutils.o CMakeFiles/CJUnitTestsPort.dir/resources.o CMakeFiles/CJUnitTestsPort.dir/regression/EscapeProcessorRegressionTest.o CMakeFiles/CJUnitTestsPort.dir/compliance/ConnectionTest.o CMakeFiles/CJUnitTestsPort.dir/compliance/DatabaseMetaDataTest.o CMakeFiles/CJUnitTestsPort.dir/compliance/StatementTest.o CMakeFiles/CJUnitTestsPort.dir/compliance/ResultSetMetadataTest.o CMakeFiles/CJUnitTestsPort.dir/compliance/PreparedStatementTest.o CMakeFiles/CJUnitTestsPort.dir/simple/BlobTest.o CMakeFiles/CJUnitTestsPort.dir/regression/BlobRegressionTest.o CMakeFiles/CJUnitTestsPort.dir/regression/PreparedStatementRegressionTest.o CMakeFiles/CJUnitTestsPort.dir/simple/TransactionTest.o CMakeFiles/CJUnitTestsPort.dir/regression/SubqueriesRegressionTest.o CMakeFiles/CJUnitTestsPort.dir/compliance/UnbufferedRsStmtTest.o -o CJUnitTestsPort -L/usr/sfw/lib/64 -L/usr/lib/64 -L/lib/64 -L/opt/mysql/5.1.39/lib ../../driver/libmysqlcppconn.so.1.0.5 -lmysqlclient_r ../framework/libtest_framework.a -lz -lpthread -lthread -lposix4 -lresolv -lsocket -lnsl -lm -lpthread -lthread -lposix4 -lresolv -lsocket -lnsl -lm -m64 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic -DHAVE_RWLOCK_T -DUNIV_SOLARIS -DUNIV_SOLARIS -R/usr/sfw/lib/64:/usr/lib/64:/lib/64:/opt/mysql/5.1.39/lib:/Desktop/mysql-connector-c++-1.0.5/driver
ld: fatal: file CMakeFiles/CJUnitTestsPort.dir/ccpptests.o: wrong ELF class: ELFCLASS32
ld: fatal: File processing errors. No output written to CJUnitTestsPort
bash-3.00#
How to repeat:
# tar xvf mysql-connector-c++-1.0.5.tar
# cd mysql-connector-c++-1.0.5
# /path/to/cmake -DCMAKE_INSTALL_PREFIX=/path/to/mysql-connector-c++-1.0.5 -DMYSQL_CONFIG_EXECUTABLE=/opt/mysql/5.1.39/bin/mysql_config -DCMAKE_BUILD_TYPE=Debug -DMYSQLCPPCONN_TRACE_ENABLE:BOOL=1
Suggested fix:
Looks to be a missmatch of 32bit and 64bit files.