mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Fixing AIX compilation failires
This commit is contained in:
@@ -144,6 +144,7 @@
|
|||||||
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
||||||
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
||||||
#undef _LARGE_FILE_API
|
#undef _LARGE_FILE_API
|
||||||
|
#undef __GNUG__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -264,6 +265,16 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _AIX
|
||||||
|
/*
|
||||||
|
AIX includes inttypes.h from sys/types.h
|
||||||
|
Explicitly request format macros before the first inclusion of inttypes.h
|
||||||
|
*/
|
||||||
|
#define __STDC_FORMAT_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if !defined(__WIN__)
|
#if !defined(__WIN__)
|
||||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||||
#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */
|
#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */
|
||||||
@@ -316,6 +327,13 @@ C_MODE_END
|
|||||||
#define _LONG_LONG 1 /* For AIX string library */
|
#define _LONG_LONG 1 /* For AIX string library */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
||||||
|
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
||||||
|
#undef _LARGE_FILE_API
|
||||||
|
#undef __GNUG__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef stdin
|
#ifndef stdin
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -341,6 +359,14 @@ C_MODE_END
|
|||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
||||||
|
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
||||||
|
#undef _LARGE_FILE_API
|
||||||
|
#undef __GNUG__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_H
|
#ifdef HAVE_FCNTL_H
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -1221,4 +1247,11 @@ static inline double rint(double x)
|
|||||||
#define DEFAULT_TMPDIR P_tmpdir
|
#define DEFAULT_TMPDIR P_tmpdir
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
||||||
|
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
||||||
|
#undef _LARGE_FILE_API
|
||||||
|
#undef __GNUG__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif /* my_global_h */
|
#endif /* my_global_h */
|
||||||
|
@@ -9,6 +9,11 @@
|
|||||||
#ifndef DENA_AUTO_FILE_HPP
|
#ifndef DENA_AUTO_FILE_HPP
|
||||||
#define DENA_AUTO_FILE_HPP
|
#define DENA_AUTO_FILE_HPP
|
||||||
|
|
||||||
|
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
|
||||||
|
#if defined(_AIX) && defined(_LARGE_FILE_API)
|
||||||
|
#undef _LARGE_FILE_API
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
@@ -121,6 +121,12 @@ my_connect_async(struct mysql_async_context *b, my_socket fd,
|
|||||||
IF_WIN(WSAGetLastError() != WSAEWOULDBLOCK, \
|
IF_WIN(WSAGetLastError() != WSAEWOULDBLOCK, \
|
||||||
(errno != EAGAIN && errno != EINTR))
|
(errno != EAGAIN && errno != EINTR))
|
||||||
|
|
||||||
|
#ifdef _AIX
|
||||||
|
#ifndef MSG_DONTWAIT
|
||||||
|
#define MSG_DONTWAIT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
my_recv_async(struct mysql_async_context *b, int fd,
|
my_recv_async(struct mysql_async_context *b, int fd,
|
||||||
unsigned char *buf, size_t size, int timeout)
|
unsigned char *buf, size_t size, int timeout)
|
||||||
|
@@ -8144,7 +8144,7 @@ static int mysql_init_variables(void)
|
|||||||
my_atomic_rwlock_init(&thread_running_lock);
|
my_atomic_rwlock_init(&thread_running_lock);
|
||||||
my_atomic_rwlock_init(&thread_count_lock);
|
my_atomic_rwlock_init(&thread_count_lock);
|
||||||
my_atomic_rwlock_init(&statistics_lock);
|
my_atomic_rwlock_init(&statistics_lock);
|
||||||
my_atomic_rwlock_init(slave_executed_entries_lock);
|
my_atomic_rwlock_init(&slave_executed_entries_lock);
|
||||||
strmov(server_version, MYSQL_SERVER_VERSION);
|
strmov(server_version, MYSQL_SERVER_VERSION);
|
||||||
threads.empty();
|
threads.empty();
|
||||||
thread_cache.empty();
|
thread_cache.empty();
|
||||||
|
@@ -99,7 +99,8 @@ public:
|
|||||||
void *data; /* scheduler-specific data structure */
|
void *data; /* scheduler-specific data structure */
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(EMBEDDED_LIBRARY)
|
#undef HAVE_POOL_OF_THREADS
|
||||||
|
#if !defined(EMBEDDED_LIBRARY) && !defined(_AIX)
|
||||||
#define HAVE_POOL_OF_THREADS 1
|
#define HAVE_POOL_OF_THREADS 1
|
||||||
void pool_of_threads_scheduler(scheduler_functions* func,
|
void pool_of_threads_scheduler(scheduler_functions* func,
|
||||||
ulong *arg_max_connections,
|
ulong *arg_max_connections,
|
||||||
|
@@ -19,6 +19,9 @@
|
|||||||
#include <sql_class.h>
|
#include <sql_class.h>
|
||||||
#include <my_pthread.h>
|
#include <my_pthread.h>
|
||||||
#include <scheduler.h>
|
#include <scheduler.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_POOL_OF_THREADS
|
||||||
|
|
||||||
#include <sql_connect.h>
|
#include <sql_connect.h>
|
||||||
#include <mysqld.h>
|
#include <mysqld.h>
|
||||||
#include <debug_sync.h>
|
#include <debug_sync.h>
|
||||||
@@ -1678,3 +1681,5 @@ static void print_pool_blocked_message(bool max_threads_reached)
|
|||||||
msg_written= true;
|
msg_written= true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_POOL_OF_THREADS */
|
||||||
|
@@ -9,6 +9,12 @@ typedef off_t off64_t;
|
|||||||
#define O_LARGEFILE 0
|
#define O_LARGEFILE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _AIX
|
||||||
|
#ifndef O_LARGEFILE
|
||||||
|
#define O_LARGEFILE 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
typedef __int64 BIGINT;
|
typedef __int64 BIGINT;
|
||||||
#else // !WIN32
|
#else // !WIN32
|
||||||
|
@@ -315,11 +315,15 @@ int table_events_waits_common::make_socket_object_columns(volatile PFS_events_wa
|
|||||||
uint port;
|
uint port;
|
||||||
char port_str[128];
|
char port_str[128];
|
||||||
char ip_str[INET6_ADDRSTRLEN+1];
|
char ip_str[INET6_ADDRSTRLEN+1];
|
||||||
uint ip_len= 0;
|
/*
|
||||||
|
"ip_length" was "ip_len" originally.
|
||||||
|
but it conflicted with some macro on AIX. Renamed.
|
||||||
|
*/
|
||||||
|
uint ip_length= 0;
|
||||||
port_str[0]= ':';
|
port_str[0]= ':';
|
||||||
|
|
||||||
/* Get the IP address and port number */
|
/* Get the IP address and port number */
|
||||||
ip_len= pfs_get_socket_address(ip_str, sizeof(ip_str), &port,
|
ip_length= pfs_get_socket_address(ip_str, sizeof(ip_str), &port,
|
||||||
&safe_socket->m_sock_addr,
|
&safe_socket->m_sock_addr,
|
||||||
safe_socket->m_addr_len);
|
safe_socket->m_addr_len);
|
||||||
|
|
||||||
@@ -327,15 +331,15 @@ int table_events_waits_common::make_socket_object_columns(volatile PFS_events_wa
|
|||||||
int port_len= int10_to_str(port, (port_str+1), 10) - port_str + 1;
|
int port_len= int10_to_str(port, (port_str+1), 10) - port_str + 1;
|
||||||
|
|
||||||
/* OBJECT NAME */
|
/* OBJECT NAME */
|
||||||
m_row.m_object_name_length= ip_len + port_len;
|
m_row.m_object_name_length= ip_length + port_len;
|
||||||
|
|
||||||
if (unlikely((m_row.m_object_name_length == 0) ||
|
if (unlikely((m_row.m_object_name_length == 0) ||
|
||||||
(m_row.m_object_name_length > sizeof(m_row.m_object_name))))
|
(m_row.m_object_name_length > sizeof(m_row.m_object_name))))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
char *name= m_row.m_object_name;
|
char *name= m_row.m_object_name;
|
||||||
memcpy(name, ip_str, ip_len);
|
memcpy(name, ip_str, ip_length);
|
||||||
memcpy(name + ip_len, port_str, port_len);
|
memcpy(name + ip_length, port_str, port_len);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -198,10 +198,10 @@ necessary only if the memory block containing it is freed. */
|
|||||||
pfs_mutex_enter_nowait_func((M), __FILE__, __LINE__)
|
pfs_mutex_enter_nowait_func((M), __FILE__, __LINE__)
|
||||||
|
|
||||||
# define mutex_enter_first(M) \
|
# define mutex_enter_first(M) \
|
||||||
pfs_mutex_enter_func((M), __FILE__, __LINE__, HIGH_PRIO)
|
pfs_mutex_enter_func((M), __FILE__, __LINE__, IB_HIGH_PRIO)
|
||||||
|
|
||||||
# define mutex_enter_last(M) \
|
# define mutex_enter_last(M) \
|
||||||
pfs_mutex_enter_func((M), __FILE__, __LINE__, LOW_PRIO)
|
pfs_mutex_enter_func((M), __FILE__, __LINE__, IB_LOW_PRIO)
|
||||||
|
|
||||||
# define mutex_exit(M) pfs_mutex_exit_func(M)
|
# define mutex_exit(M) pfs_mutex_exit_func(M)
|
||||||
|
|
||||||
@@ -230,10 +230,10 @@ original non-instrumented functions */
|
|||||||
mutex_enter_nowait_func((M), __FILE__, __LINE__)
|
mutex_enter_nowait_func((M), __FILE__, __LINE__)
|
||||||
|
|
||||||
# define mutex_enter_first(M) \
|
# define mutex_enter_first(M) \
|
||||||
mutex_enter_func((M), __FILE__, __LINE__, HIGH_PRIO)
|
mutex_enter_func((M), __FILE__, __LINE__, IB_HIGH_PRIO)
|
||||||
|
|
||||||
# define mutex_enter_last(M) \
|
# define mutex_enter_last(M) \
|
||||||
mutex_enter_func((M), __FILE__, __LINE__, LOW_PRIO)
|
mutex_enter_func((M), __FILE__, __LINE__, IB_LOW_PRIO)
|
||||||
|
|
||||||
# define mutex_exit(M) mutex_exit_func(M)
|
# define mutex_exit(M) mutex_exit_func(M)
|
||||||
|
|
||||||
@@ -325,8 +325,8 @@ directly. Locks a priority mutex for the current thread. If the mutex is
|
|||||||
reserved the function spins a preset time (controlled by SYNC_SPIN_ROUNDS)
|
reserved the function spins a preset time (controlled by SYNC_SPIN_ROUNDS)
|
||||||
waiting for the mutex before suspending the thread. If the thread is suspended,
|
waiting for the mutex before suspending the thread. If the thread is suspended,
|
||||||
the priority argument value determines the relative order for its wake up. Any
|
the priority argument value determines the relative order for its wake up. Any
|
||||||
HIGH_PRIO waiters will be woken up before any LOW_PRIO waiters. In case of
|
IB_HIGH_PRIO waiters will be woken up before any IB_LOW_PRIO waiters. In case of
|
||||||
DEFAULT_PRIO, the relative priority will be set according to
|
IB_DEFAULT_PRIO, the relative priority will be set according to
|
||||||
srv_current_thread_priority. */
|
srv_current_thread_priority. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
void
|
void
|
||||||
@@ -336,7 +336,7 @@ mutex_enter_func(
|
|||||||
const char* file_name, /*!< in: file name where
|
const char* file_name, /*!< in: file name where
|
||||||
locked */
|
locked */
|
||||||
ulint line, /*!< in: line where locked */
|
ulint line, /*!< in: line where locked */
|
||||||
enum ib_sync_priority priority = DEFAULT_PRIO);
|
enum ib_sync_priority priority = IB_DEFAULT_PRIO);
|
||||||
/*!<in: mutex acquisition
|
/*!<in: mutex acquisition
|
||||||
priority */
|
priority */
|
||||||
/********************************************************************//**
|
/********************************************************************//**
|
||||||
@@ -453,7 +453,7 @@ pfs_mutex_enter_func(
|
|||||||
const char* file_name, /*!< in: file name where
|
const char* file_name, /*!< in: file name where
|
||||||
locked */
|
locked */
|
||||||
ulint line, /*!< in: line where locked */
|
ulint line, /*!< in: line where locked */
|
||||||
enum ib_sync_priority priority = DEFAULT_PRIO);
|
enum ib_sync_priority priority = IB_DEFAULT_PRIO);
|
||||||
/*!<in: mutex acquisition
|
/*!<in: mutex acquisition
|
||||||
priority */
|
priority */
|
||||||
/********************************************************************//**
|
/********************************************************************//**
|
||||||
|
@@ -278,8 +278,8 @@ directly. Locks a priority mutex for the current thread. If the mutex is
|
|||||||
reserved the function spins a preset time (controlled by SYNC_SPIN_ROUNDS)
|
reserved the function spins a preset time (controlled by SYNC_SPIN_ROUNDS)
|
||||||
waiting for the mutex before suspending the thread. If the thread is suspended,
|
waiting for the mutex before suspending the thread. If the thread is suspended,
|
||||||
the priority argument value determines the relative order for its wake up. Any
|
the priority argument value determines the relative order for its wake up. Any
|
||||||
HIGH_PRIO waiters will be woken up before any LOW_PRIO waiters. In case of
|
IB_HIGH_PRIO waiters will be woken up before any IB_LOW_PRIO waiters. In case
|
||||||
DEFAULT_PRIO, the relative priority will be set according to
|
of IB_DEFAULT_PRIO, the relative priority will be set according to
|
||||||
srv_current_thread_priority. */
|
srv_current_thread_priority. */
|
||||||
UNIV_INLINE
|
UNIV_INLINE
|
||||||
void
|
void
|
||||||
@@ -309,10 +309,10 @@ mutex_enter_func(
|
|||||||
return; /* Succeeded! */
|
return; /* Succeeded! */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UNIV_LIKELY(priority == DEFAULT_PRIO)) {
|
if (UNIV_LIKELY(priority == IB_DEFAULT_PRIO)) {
|
||||||
high_priority = srv_current_thread_priority;
|
high_priority = srv_current_thread_priority;
|
||||||
} else {
|
} else {
|
||||||
high_priority = (priority == HIGH_PRIO);
|
high_priority = (priority == IB_HIGH_PRIO);
|
||||||
}
|
}
|
||||||
mutex_spin_wait(mutex, high_priority, file_name, line);
|
mutex_spin_wait(mutex, high_priority, file_name, line);
|
||||||
}
|
}
|
||||||
|
@@ -36,9 +36,9 @@ struct ib_prio_mutex_t;
|
|||||||
|
|
||||||
/** Priority mutex and rwlatch acquisition priorities */
|
/** Priority mutex and rwlatch acquisition priorities */
|
||||||
enum ib_sync_priority {
|
enum ib_sync_priority {
|
||||||
DEFAULT_PRIO,
|
IB_DEFAULT_PRIO,
|
||||||
LOW_PRIO,
|
IB_LOW_PRIO,
|
||||||
HIGH_PRIO
|
IB_HIGH_PRIO
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user