diff options
author | unknown <msvensson@pilot.blaudden> | 2007-04-12 00:43:25 +0200 |
---|---|---|
committer | unknown <msvensson@pilot.blaudden> | 2007-04-12 00:43:25 +0200 |
commit | bf5833bde89d08e00b87ec9c25c75ee2c836e512 (patch) | |
tree | 5cac6e2c2035356b35afce525ae26148e79ddf94 /include | |
parent | 561cd328a35edc7cdfd3253ba1ca0c7aa5a938d8 (diff) | |
download | mariadb-git-bf5833bde89d08e00b87ec9c25c75ee2c836e512.tar.gz |
Bug#25118 ATTRIBUTE_FORMAT_FPTR undeclared in m_ctype.h
- Move marcos for __attribute__ usage to my_attribute.h and
include that file where needed
include/Makefile.am:
Add new header file my_attribute.h
include/m_ctype.h:
Include my_attribute.h in order to use ATTRIBUTE_* macros
include/my_global.h:
Move the ATTRIBUTE_* macros to my_attribute.h
Include my_attribute.h
include/my_sys.h:
No need to protect the inclusion of header file, it will
protect itself
include/my_attribute.h:
New BitKeeper file ``include/my_attribute.h''
Diffstat (limited to 'include')
-rw-r--r-- | include/Makefile.am | 2 | ||||
-rw-r--r-- | include/m_ctype.h | 2 | ||||
-rw-r--r-- | include/my_attribute.h | 63 | ||||
-rw-r--r-- | include/my_global.h | 38 | ||||
-rw-r--r-- | include/my_sys.h | 3 |
5 files changed, 67 insertions, 41 deletions
diff --git a/include/Makefile.am b/include/Makefile.am index 9cd2f6215f1..e5fac39e5ff 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -25,7 +25,7 @@ pkginclude_HEADERS = $(HEADERS_ABI) my_dbug.h m_string.h my_sys.h \ errmsg.h my_global.h my_net.h \ my_getopt.h sslopt-longopts.h my_dir.h \ sslopt-vars.h sslopt-case.h sql_common.h keycache.h \ - m_ctype.h $(HEADERS_GEN) + m_ctype.h my_attribute.h $(HEADERS_GEN) noinst_HEADERS = config-win.h config-os2.h config-netware.h \ heap.h my_bitmap.h\ myisam.h myisampack.h myisammrg.h ft_global.h\ diff --git a/include/m_ctype.h b/include/m_ctype.h index 50a50b7ed12..f33fd015733 100644 --- a/include/m_ctype.h +++ b/include/m_ctype.h @@ -21,6 +21,8 @@ #ifndef _m_ctype_h #define _m_ctype_h +#include <my_attribute.h> + #ifdef __cplusplus extern "C" { #endif diff --git a/include/my_attribute.h b/include/my_attribute.h new file mode 100644 index 00000000000..8309d85f20a --- /dev/null +++ b/include/my_attribute.h @@ -0,0 +1,63 @@ +/* Copyright (C) 2000-2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* + Helper macros used for setting different __attributes__ + on functions in a portable fashion +*/ + +#ifndef _my_attribute_h +#define _my_attribute_h + +/* + Disable __attribute__() on gcc < 2.7, g++ < 3.4, and non-gcc compilers. + Some forms of __attribute__ are actually supported in earlier versions of + g++, but we just disable them all because we only use them to generate + compilation warnings. +*/ +#ifndef __attribute__ +# if !defined(__GNUC__) +# define __attribute__(A) +# elif GCC_VERSION < 2008 +# define __attribute__(A) +# elif defined(__cplusplus) && GCC_VERSION < 3004 +# define __attribute__(A) +# endif +#endif + +/* + __attribute__((format(...))) is only supported in gcc >= 2.8 and g++ >= 3.4 + But that's already covered by the __attribute__ tests above, so this is + just a convenience macro. +*/ +#ifndef ATTRIBUTE_FORMAT +# define ATTRIBUTE_FORMAT(style, m, n) __attribute__((format(style, m, n))) +#endif + +/* + + __attribute__((format(...))) on a function pointer is not supported + until gcc 3.1 +*/ +#ifndef ATTRIBUTE_FORMAT_FPTR +# if (GCC_VERSION >= 3001) +# define ATTRIBUTE_FORMAT_FPTR(style, m, n) ATTRIBUTE_FORMAT(style, m, n) +# else +# define ATTRIBUTE_FORMAT_FPTR(style, m, n) +# endif /* GNUC >= 3.1 */ +#endif + + +#endif diff --git a/include/my_global.h b/include/my_global.h index 61c2afc541b..5244e66769e 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -497,43 +497,7 @@ typedef unsigned short ushort; #define my_const_cast(A) (A) #endif -/* - Disable __attribute__() on gcc < 2.7, g++ < 3.4, and non-gcc compilers. - Some forms of __attribute__ are actually supported in earlier versions of - g++, but we just disable them all because we only use them to generate - compilation warnings. -*/ -#ifndef __attribute__ -# if !defined(__GNUC__) -# define __attribute__(A) -# elif GCC_VERSION < 2008 -# define __attribute__(A) -# elif defined(__cplusplus) && GCC_VERSION < 3004 -# define __attribute__(A) -# endif -#endif - -/* - __attribute__((format(...))) is only supported in gcc >= 2.8 and g++ >= 3.4 - But that's already covered by the __attribute__ tests above, so this is - just a convenience macro. -*/ -#ifndef ATTRIBUTE_FORMAT -# define ATTRIBUTE_FORMAT(style, m, n) __attribute__((format(style, m, n))) -#endif - -/* - - __attribute__((format(...))) on a function pointer is not supported - until gcc 3.1 -*/ -#ifndef ATTRIBUTE_FORMAT_FPTR -# if (GCC_VERSION >= 3001) -# define ATTRIBUTE_FORMAT_FPTR(style, m, n) ATTRIBUTE_FORMAT(style, m, n) -# else -# define ATTRIBUTE_FORMAT_FPTR(style, m, n) -# endif /* GNUC >= 3.1 */ -#endif +#include <my_attribute.h> /* Wen using the embedded library, users might run into link problems, diff --git a/include/my_sys.h b/include/my_sys.h index 63a1faf3995..615a074e814 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -31,10 +31,7 @@ extern int NEAR my_errno; /* Last error in mysys */ #include <my_pthread.h> #endif -#ifndef _m_ctype_h #include <m_ctype.h> /* for CHARSET_INFO */ -#endif - #include <stdarg.h> #include <typelib.h> |