From: Date: July 20 2010 7:44pm Subject: bzr commit into mysql-5.1-bugteam branch (davi:3493) Bug#52514 List-Archive: http://lists.mysql.com/commits/113968 X-Bug: 52514 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9147207462624717749==" --===============9147207462624717749== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline # At a local mysql-5.1-bugteam repository of davi 3493 Davi Arnaut 2010-07-20 Bug#52514: mysql 5.1 do_abi_check does not compile w/ gcc4.5 due to GCC preprocessor change The problem is that newer GCC versions treats missing headers as fatal errors. The solution is to use a guard macro to prevent the inclusion of system headers when checking the ABI with the C Preprocessor. Reference: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15638 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44836 @ Makefile.am Define guard macro. @ configure.in Remove workaround. @ include/mysql.h Guard the header inclusion. @ include/mysql.h.pp Header is not included anymore. modified: Makefile.am configure.in include/mysql.h include/mysql.h.pp === modified file 'Makefile.am' Index: mysql-5.1.40/Makefile.am =================================================================== --- mysql-5.1.40.orig/Makefile.am 2009-10-07 01:46:13.000000000 +0800 +++ mysql-5.1.40/Makefile.am 2010-08-17 20:07:24.843148001 +0800 @@ -312,7 +312,7 @@ do_abi_check: set -ex; \ for file in $(abi_headers); do \ - @CC@ -E -nostdinc -dI \ + @CC@ -E -nostdinc -dI -DMYSQL_ABI_CHECK \ -I$(top_srcdir)/include \ -I$(top_srcdir)/include/mysql \ -I$(top_srcdir)/sql \ Index: mysql-5.1.40/include/mysql.h =================================================================== --- mysql-5.1.40.orig/include/mysql.h 2009-10-07 01:46:50.000000000 +0800 +++ mysql-5.1.40/include/mysql.h 2010-08-17 20:07:24.843148001 +0800 @@ -44,7 +44,9 @@ #endif #ifndef _global_h /* If not standard header */ +#ifndef MYSQL_ABI_CHECK #include +#endif #ifdef __LCC__ #include /* For windows */ #endif Index: mysql-5.1.40/include/mysql.h.pp =================================================================== --- mysql-5.1.40.orig/include/mysql.h.pp 2009-10-07 01:46:50.000000000 +0800 +++ mysql-5.1.40/include/mysql.h.pp 2010-08-17 20:07:24.843148001 +0800 @@ -1,4 +1,3 @@ -#include typedef char my_bool; typedef int my_socket; #include "mysql_version.h"