move alloca() definition from all *.h files to one new header file
This commit is contained in:
parent
66b21ed540
commit
46a7e96339
@ -37,6 +37,7 @@ SET(HEADERS
|
|||||||
ma_dyncol.h
|
ma_dyncol.h
|
||||||
my_list.h
|
my_list.h
|
||||||
my_alloc.h
|
my_alloc.h
|
||||||
|
my_alloca.h
|
||||||
typelib.h
|
typelib.h
|
||||||
my_dbug.h
|
my_dbug.h
|
||||||
m_string.h
|
m_string.h
|
||||||
@ -105,6 +106,7 @@ ENDMACRO()
|
|||||||
|
|
||||||
INSTALL_COMPAT_HEADER(my_global.h "")
|
INSTALL_COMPAT_HEADER(my_global.h "")
|
||||||
INSTALL_COMPAT_HEADER(my_config.h "")
|
INSTALL_COMPAT_HEADER(my_config.h "")
|
||||||
|
INSTALL_COMPAT_HEADER(my_alloca.h "")
|
||||||
INSTALL_COMPAT_HEADER(my_sys.h "")
|
INSTALL_COMPAT_HEADER(my_sys.h "")
|
||||||
INSTALL_COMPAT_HEADER(mysql_version.h "
|
INSTALL_COMPAT_HEADER(mysql_version.h "
|
||||||
#include <mariadb_version.h>
|
#include <mariadb_version.h>
|
||||||
|
45
include/my_alloca.h
Normal file
45
include/my_alloca.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* 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 <malloc.h> /*for alloca*/
|
||||||
|
/*
|
||||||
|
MSVC may define "alloca" when compiling in /Ze mode
|
||||||
|
(with extensions from Microsoft), but otherwise only
|
||||||
|
the _alloca function is defined:
|
||||||
|
*/
|
||||||
|
#ifndef alloca
|
||||||
|
#define alloca _alloca
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef HAVE_ALLOCA_H
|
||||||
|
#include <alloca.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_ALLOCA)
|
||||||
|
/*
|
||||||
|
If the GCC/LLVM compiler from the MinGW is used,
|
||||||
|
alloca may not be defined when using the MSVC CRT:
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && !defined(alloca)
|
||||||
|
#define alloca __builtin_alloca
|
||||||
|
#endif /* GNUC */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MY_ALLOCA_INCLUDED */
|
@ -358,13 +358,6 @@ C_MODE_END
|
|||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(__cplusplus) && defined(NO_CPLUSPLUS_ALLOCA)
|
|
||||||
#undef HAVE_ALLOCA
|
|
||||||
#undef HAVE_ALLOCA_H
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_ALLOCA_H
|
|
||||||
#include <alloca.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <errno.h> /* Recommended by debian */
|
#include <errno.h> /* Recommended by debian */
|
||||||
/* We need the following to go around a problem with openssl on solaris */
|
/* We need the following to go around a problem with openssl on solaris */
|
||||||
@ -521,6 +514,7 @@ typedef unsigned short ushort;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <my_compiler.h>
|
#include <my_compiler.h>
|
||||||
|
#include <my_alloca.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Wen using the embedded library, users might run into link problems,
|
Wen using the embedded library, users might run into link problems,
|
||||||
|
@ -36,9 +36,7 @@ typedef struct my_aio_result {
|
|||||||
#include <m_ctype.h> /* for CHARSET_INFO */
|
#include <m_ctype.h> /* for CHARSET_INFO */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <typelib.h>
|
#include <typelib.h>
|
||||||
#ifdef _WIN32
|
#include <my_alloca.h>
|
||||||
#include <malloc.h> /*for alloca*/
|
|
||||||
#endif
|
|
||||||
#include <mysql/plugin.h>
|
#include <mysql/plugin.h>
|
||||||
#include <mysql/service_my_print_error.h>
|
#include <mysql/service_my_print_error.h>
|
||||||
|
|
||||||
@ -196,16 +194,6 @@ my_bool my_test_if_atomic_write(File handle, int pagesize);
|
|||||||
extern my_bool my_may_have_atomic_write;
|
extern my_bool my_may_have_atomic_write;
|
||||||
|
|
||||||
#if defined(HAVE_ALLOCA) && !defined(HAVE_valgrind)
|
#if defined(HAVE_ALLOCA) && !defined(HAVE_valgrind)
|
||||||
#if defined(_AIX) && !defined(__GNUC__) && !defined(_AIX43)
|
|
||||||
#pragma alloca
|
|
||||||
#endif /* _AIX */
|
|
||||||
#if defined(__MWERKS__)
|
|
||||||
#undef alloca
|
|
||||||
#define alloca _alloca
|
|
||||||
#endif /* __MWERKS__ */
|
|
||||||
#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca)
|
|
||||||
#define alloca __builtin_alloca
|
|
||||||
#endif /* GNUC */
|
|
||||||
#define my_alloca(SZ) alloca((size_t) (SZ))
|
#define my_alloca(SZ) alloca((size_t) (SZ))
|
||||||
#define my_afree(PTR) ((void)0)
|
#define my_afree(PTR) ((void)0)
|
||||||
#define MAX_ALLOCA_SZ 4096
|
#define MAX_ALLOCA_SZ 4096
|
||||||
|
@ -24,22 +24,19 @@
|
|||||||
*provider* (encryption plugin).
|
*provider* (encryption plugin).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef MYSQL_ABI_CHECK
|
#ifndef MYSQL_ABI_CHECK
|
||||||
|
#include <my_alloca.h>
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <malloc.h>
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
#define inline __inline
|
#define inline __inline
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#ifdef HAVE_ALLOCA_H
|
|
||||||
#include <alloca.h>
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* returned from encryption_key_get_latest_version() */
|
/* returned from encryption_key_get_latest_version() */
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
|
||||||
|
|
||||||
#include <my_global.h>
|
#include <my_alloca.h>
|
||||||
#include <mysql/plugin_password_validation.h>
|
#include <mysql/plugin_password_validation.h>
|
||||||
#include <crack.h>
|
#include <crack.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* See COPYRIGHT.txt for details.
|
* See COPYRIGHT.txt for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <my_global.h>
|
#include <my_alloca.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
@ -17,9 +17,6 @@
|
|||||||
#if __linux__
|
#if __linux__
|
||||||
#include <sys/epoll.h>
|
#include <sys/epoll.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_ALLOCA_H
|
|
||||||
#include <alloca.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "hstcpsvr_worker.hpp"
|
#include "hstcpsvr_worker.hpp"
|
||||||
#include "string_buffer.hpp"
|
#include "string_buffer.hpp"
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <my_alloca.h>
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user