diff options
author | Georg Richter <georg@mariadb.com> | 2016-02-01 16:10:49 +0100 |
---|---|---|
committer | Kristian Nielsen <knielsen@knielsen-hq.org> | 2016-02-01 16:12:00 +0100 |
commit | 8cf1f50967ff58abb7d9688ae64ac662e66389c0 (patch) | |
tree | 08f3689273e449ab9d95361fa85eb945fd7e9b0b | |
parent | 9c9d10b441fe79b111509949ca40afe1a6284c0f (diff) | |
download | mariadb-git-8cf1f50967ff58abb7d9688ae64ac662e66389c0.tar.gz |
MDEV-9112: Non-blocking client API missing on non-x86 platforms
The check for UCONTEXT in cmake was somehow become broken, disabling the
fallback to ucontext. This caused the non-blocking client API to not be
available for non-x86 platforms, on which no hand-crafted assembler
implementation of my_context is available.
-rw-r--r-- | config.h.cmake | 2 | ||||
-rw-r--r-- | configure.cmake | 3 | ||||
-rw-r--r-- | include/my_context.h | 2 | ||||
-rw-r--r-- | sql-common/client.c | 1 |
4 files changed, 6 insertions, 2 deletions
diff --git a/config.h.cmake b/config.h.cmake index 02952f6f395..6236173c2d6 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -95,6 +95,7 @@ #cmakedefine HAVE_SYS_TYPES_H 1 #cmakedefine HAVE_SYS_UN_H 1 #cmakedefine HAVE_SYS_VADVISE_H 1 +#cmakedefine HAVE_UCONTEXT_H 1 #cmakedefine HAVE_TERM_H 1 #cmakedefine HAVE_TERMBITS_H 1 #cmakedefine HAVE_TERMIOS_H 1 @@ -291,7 +292,6 @@ #cmakedefine HAVE_THR_YIELD 1 #cmakedefine HAVE_TIME 1 #cmakedefine HAVE_TIMES 1 -#cmakedefine HAVE_UCONTEXT 1 #cmakedefine HAVE_VALLOC 1 #cmakedefine HAVE_VIDATTR 1 #define HAVE_VIO_READ_BUFF 1 diff --git a/configure.cmake b/configure.cmake index 1e64e058670..6d82b1d88de 100644 --- a/configure.cmake +++ b/configure.cmake @@ -1098,3 +1098,6 @@ CHECK_STRUCT_HAS_MEMBER("struct dirent" d_ino "dirent.h" STRUCT_DIRENT_HAS_D_IN CHECK_STRUCT_HAS_MEMBER("struct dirent" d_namlen "dirent.h" STRUCT_DIRENT_HAS_D_NAMLEN) SET(SPRINTF_RETURNS_INT 1) CHECK_INCLUDE_FILE(ucontext.h HAVE_UCONTEXT_H) +IF(NOT HAVE_UCONTEXT_H) + CHECK_INCLUDE_FILE(sys/ucontext.h HAVE_UCONTEXT_H) +ENDIF() diff --git a/include/my_context.h b/include/my_context.h index b5daca25bba..dd44103d3b2 100644 --- a/include/my_context.h +++ b/include/my_context.h @@ -31,7 +31,7 @@ #define MY_CONTEXT_USE_X86_64_GCC_ASM #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__) #define MY_CONTEXT_USE_I386_GCC_ASM -#elif defined(HAVE_UCONTEXT) +#elif defined(HAVE_UCONTEXT_H) #define MY_CONTEXT_USE_UCONTEXT #else #define MY_CONTEXT_DISABLE diff --git a/sql-common/client.c b/sql-common/client.c index 1bb4a250c69..f8bd483e8c2 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -4293,6 +4293,7 @@ mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg) stacksize= ASYNC_CONTEXT_DEFAULT_STACK_SIZE; if (my_context_init(&ctxt->async_context, stacksize)) { + set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate); my_free(ctxt); DBUG_RETURN(1); } |