From e91294243f9905356a31d1a9944b2bea9cbfe859 Mon Sep 17 00:00:00 2001 From: Konstantin Osipov Date: Thu, 3 Dec 2009 00:24:10 +0300 Subject: [PATCH] Backport of: ------------------------------------------------------------ revno: 2630.4.37 committer: Dmitry Lenev branch nick: mysql-6.0-3726-w2 timestamp: Wed 2008-06-25 20:28:57 +0400 message: Fix build failure of mysql-6.0-3726 tree on Windows. The failure was caused by the fact that sql/mdl.cc was using __func__ macro without including sql_profile.h header which contained definition of this macro for those platforms that miss it. This patch solves this problem by moving this define to include/my_global.h which makes it available in modules which don't/can't include sql/mysql_priv.h. This is a patch that is part of WL#3726. include/my_global.h: Moved definition of __func__ macro from sql/sql_profile.h to include/my_global.h to make it accessible from those modules of the server which don't include mysql_priv.h. sql/sql_profile.cc: Removed _unknown_func_ const variable since it is no longer used by __func__ macro. sql/sql_profile.h: Moved definition of __func__ macro from sql/sql_profile.h to include/my_global.h to make it accessible from those modules of the server which don't include mysql_priv.h. --- include/my_global.h | 19 +++++++++++++++++++ sql/sql_profile.cc | 3 --- sql/sql_profile.h | 8 -------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/include/my_global.h b/include/my_global.h index 815be622b16..0f2aea62438 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -1574,6 +1574,25 @@ inline void operator delete[](void*, void*) { /* Do nothing */ } #define bool In_C_you_should_use_my_bool_instead() #endif +/* Provide __func__ macro definition for platforms that miss it. */ +#if __STDC_VERSION__ < 199901L +# if __GNUC__ >= 2 +# define __func__ __FUNCTION__ +# else +# define __func__ "" +# endif +#elif defined(_MSC_VER) +# if _MSC_VER < 1300 +# define __func__ "" +# else +# define __func__ __FUNCTION__ +# endif +#elif defined(__BORLANDC__) +# define __func__ __FUNC__ +#else +# define __func__ "" +#endif + #ifndef HAVE_RINT /** All integers up to this number can be represented exactly as double precision diff --git a/sql/sql_profile.cc b/sql/sql_profile.cc index 69e5bc3cbb4..0f67c865d45 100644 --- a/sql/sql_profile.cc +++ b/sql/sql_profile.cc @@ -38,9 +38,6 @@ #define MAX_QUERY_LENGTH 300 -/* Reserved for systems that can't record the function name in source. */ -const char * const _unknown_func_ = ""; - /** Connects Information_Schema and Profiling. */ diff --git a/sql/sql_profile.h b/sql/sql_profile.h index bffe1cb576b..e9c5686efab 100644 --- a/sql/sql_profile.h +++ b/sql/sql_profile.h @@ -16,14 +16,6 @@ #ifndef _SQL_PROFILE_H #define _SQL_PROFILE_H -#ifndef __func__ -#ifdef __FUNCTION__ -#define __func__ __FUNCTION__ -#else -#define __func__ "unknown function" -#endif -#endif - extern ST_FIELD_INFO query_profile_statistics_info[]; int fill_query_profile_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond); int make_profile_table_for_show(THD *thd, ST_SCHEMA_TABLE *schema_table);