Re: [Maria-developers] 6e28a576913: move alloca() definition from all *.h files to one place
![](https://secure.gravatar.com/avatar/39b623a1559cf9c69ac3d9d4fb44e7fe.jpg?s=120&d=mm&r=g)
Hi, Julius, this is the combined diff of both commits: git diff e1ce867e5ab0c^^ e1ce867e5ab0c On Feb 10, Julius Goryavsky wrote:
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index a7b98a11050..7d87c4a42b3 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -104,6 +105,7 @@ ENDMACRO()
INSTALL_COMPAT_HEADER(my_global.h "") INSTALL_COMPAT_HEADER(my_config.h "") +INSTALL_COMPAT_HEADER(my_alloca.h "")
I wouldn't use INSTALL_COMPAT_HEADER for my_alloca.h
INSTALL_COMPAT_HEADER(my_sys.h "") INSTALL_COMPAT_HEADER(mysql_version.h " #include
diff --git a/include/my_alloca.h b/include/my_alloca.h new file mode 100644 index 00000000000..fec0320195e --- /dev/null +++ b/include/my_alloca.h @@ -0,0 +1,37 @@ +/* Copyright (c) 2023, MariaDB Corporation. + + 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MY_ALLOCA_INCLUDED +#define MY_ALLOCA_INCLUDED + +#ifdef _WIN32 +#include /*for alloca*/ +#ifndef alloca
When can alloca be defined?
+#define alloca _alloca +#endif +#else +#include
why stdlib.h?
+#ifdef HAVE_ALLOCA_H +#include
+#endif +#endif + +#if defined(HAVE_ALLOCA) +#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && !defined(alloca)
add a comment describing your MinGW use case when this #if is needed
+#define alloca __builtin_alloca +#endif /* GNUC */ +#endif + +#endif /* MY_ALLOCA_INCLUDED */ diff --git a/include/mysql/service_encryption.h b/include/mysql/service_encryption.h index 69d205a27e8..cab1418e1d6 100644 --- a/include/mysql/service_encryption.h +++ b/include/mysql/service_encryption.h @@ -24,21 +24,19 @@ *provider* (encryption plugin). */
+#ifndef MYSQL_ABI_CHECK +#include
+#endif + #ifdef __cplusplus extern "C" { #endif #ifndef MYSQL_ABI_CHECK
why not to put #include
#ifdef _WIN32 -#include
#ifndef __cplusplus #define inline __inline #endif -#else -#include
I suspect stdlib.h belongs here, not in my_alloca.h
-#ifdef HAVE_ALLOCA_H -#include
-#endif #endif #endif
Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org
participants (1)
-
Sergei Golubchik