Bug #68665 how to compile mysql-6.0.0-alpha source code under Ubuntu10.04? A big problem
Submitted: 14 Mar 2013 2:05 Modified: 15 Mar 2013 8:23
Reporter: starive Lei Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:mysql-6.0.0-alpha OS:Other (Ubuntu10.04)
Assigned to: CPU Architecture:Any
Tags: mysql-6.0.0-alpha Ubuntu10.04

[14 Mar 2013 2:05] starive Lei
Description:
After I did:
 
sudo make:

the result is:

mysql.cc: In function ‘void print_table_data(MYSQL_RES*)’:
mysql.cc:2355: error: ‘max’ was not declared in this scope
mysql.cc:2357: error: ‘max’ was not declared in this scope
mysql.cc:2378: error: ‘min’ was not declared in this scope
mysql.cc: In function ‘int com_edit(String*, char*)’:
mysql.cc:2849: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result
make[2]: *** [mysql.o] Error 1
make[2]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/yugao/6.0/mysql-6.0.0-alpha'
make: *** [all] Error 2

I don't know how to resolve it.

How to repeat:
Answer me
[14 Mar 2013 3:31] starive Lei
In include/my_global.h , i made some change:

 /* Define some useful general macros */
-#if !defined(max)
-#define max(a, b)	((a) > (b) ? (a) : (b))
-#define min(a, b)	((a) < (b) ? (a) : (b))
+#if !defined(mysql_max)
+#define mysql_max(a, b)      ((a) > (b) ? (a) : (b))
+#define mysql_min(a, b)      ((a) < (b) ? (a) : (b))
+static __inline long min( long a, long b ) { return ( ( a < b ) ? a : b ); }
+static __inline long max( long a, long b ) { return ( ( a > b ) ? a : b ); }
 #endif

complie again,  sudo make,  the errors are:

In file included from strxmov.c:33:
../include/my_global.h:1528: error: expected identifier or ‘(’ before ‘long’
../include/my_global.h:1528: error: expected ‘)’ before ‘<’ token
../include/my_global.h:1529: error: expected identifier or ‘(’ before ‘long’
../include/my_global.h:1529: error: expected ‘)’ before ‘>’ token

How to reslove it?
[14 Mar 2013 8:24] Hartmut Holzgraefe
Why do you want to compile a discontinued development branch?
[14 Mar 2013 8:26] Hartmut Holzgraefe
http://bugs.mysql.com/bug.php?id=28184

Fixed in 6.0.4 if you *really* need to play with the now dead 6.0.x development branch
[14 Mar 2013 9:12] starive Lei
because I am reading an book and want to develop an storage engine. That book use the source code of mysql-5.1.34. However, I find the code is only similiar to mysql-6.0.0-alpha in the chapter of storage engine , and I must use the branch.
[14 Mar 2013 9:20] starive Lei
“dead 6.0.x development branch”, why you call it "dead"?  Thank you!
[14 Mar 2013 13:36] Hartmut Holzgraefe
See e.g. http://www.markleith.co.uk/2009/05/22/goodbye-mysql-60/
[15 Mar 2013 8:23] MySQL Verification Team
6.0 is not a valid tree anymore.

Please, you need to conduct your experiments with a supported MySQL version.  5.6.10 is a great place to start :)