MySQL patches by Codership

Compilation fails

Reported by Vadim Tkachenko on 2011-11-16
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MySQL patches by Codership
Undecided
Unassigned

Bug Description

most recent version on lp:codership-mysql ( revno: 3620 ) fails to compile

with error
Scanning dependencies of target strings
[ 1%] Building C object libservices/CMakeFiles/mysqlservices.dir/my_snprintf_service.c.o
[ 1%] [ 1%] Built target INFO_BIN
Building C object libservices/CMakeFiles/mysqlservices.dir/thd_alloc_service.c.o
[ 1%] Building C object libservices/CMakeFiles/mysqlservices.dir/thd_wait_service.c.o
3a4
> "
CMake Error at cmake/do_abi_check.cmake:78 (MESSAGE):
  ABI check found difference between
  /data/opt/vadim/src/codership-mysql/include/mysql.h.pp and
  /data/opt/vadim/src/codership-mysql/abi_check.out

gmake[2]: *** [CMakeFiles/abi_check] Error 1
gmake[1]: *** [CMakeFiles/abi_check.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

I use
BUILD/compile-pentium64-wsrep

Related branches

description: updated
Alex Yurchenko (ayurchen) wrote :

$ diff -u include/mysql.h.pp abi_check.out--- include/mysql.h.pp 2011-09-25 23:06:54.000000000 +0300
+++ abi_check.out 2011-11-16 18:08:34.000000000 +0200
@@ -1,6 +1,7 @@
 typedef char my_bool;
 typedef int my_socket;
 #include "mysql_version.h"
+"
 #include "mysql_com.h"
 enum enum_server_command
 {

This is reproducible on Ubuntu 11.10 (GCC 4.6.1, cmake-2.8.5) but not on Ubuntu 10.04 (GCC 4.4.3, cmake-2.8.0).

Moreover, compile-pentium64 script fails in vanilla 5.5.17 source from official tarball on Ubuntu 11.10:

[100%] Building CXX object sql/CMakeFiles/mysqld.dir/main.cc.o
Linking CXX executable mysqld
gcc: error: _ALL_STATIC=1: No such file or directory
make[2]: *** [sql/mysqld] Error 1
make[1]: *** [sql/CMakeFiles/mysqld.dir/all] Error 2
make: *** [all] Error 2

while compile-amd64-max does just fine.

This leads me to conclude that compile-pentium64 script and its derivatives is genuinely broken in MySQL and compile-amd64-* should be used instead.

Changed in codership-mysql:
status: New → Invalid
Vadim Tkachenko (vadim-tk) wrote :

I have the same problem with
BUILD/compile-amd64-wsrep

so what is the proper way to build the most recent revision ?

Alex Yurchenko (ayurchen) wrote :

compile-pentium64 script is likewise broken in MySQL 5.1.59

Alex Yurchenko (ayurchen) wrote :

Vadim, which distribution/compiler/cmake are you using? So far compile-amd64-wsrep works fine for me everywhere. Are you certain you have the same error as with compile-pentium64-wsrep?

Vadim Tkachenko (vadim-tk) wrote :

Alex,

I use Oracle Linux 6.1, which should be the same as RedHat 6.1.

With compile-amd64-wsrep I have exactly the same error.

When I disable
ABI_CHECK in file
cmake/abi_check.cmake - ( SET(RUN_ABI_CHECK 0) )

I have problem with file include/mysql_version.h
it contains:

#define MYSQL_COMPILATION_COMMENT "wsrep_22.3dev.r3623
"

That is quote is after new line

Vadim Tkachenko (vadim-tk) wrote :

I suspect the failure appears after revision http://bazaar.launchpad.net/~codership/codership-mysql/wsrep-5.5/revision/3620

as
1. I was able to compile before this revision, even with 5.5.17 version
2. File include/mysql_version.h gets broken on MYSQL_COMPILATION_COMMENT

Vadim Tkachenko (vadim-tk) wrote :

to check my assumption I changed

cmake/wsrep.cmake
line
 SET(COMPILATION_COMMENT "wsrep_${WSREP_VERSION}")

to

SET(COMPILATION_COMMENT "wsrep")

And now I am able to compile without problem.

Changed in codership-mysql:
status: Invalid → In Progress
status: In Progress → Fix Committed
Changed in codership-mysql:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers