mirror of
https://github.com/MariaDB/server.git
synced 2026-04-23 08:45:33 +02:00
Define USE_TLS when compiling libmysql.dll, to avoid crashing when
loaded at runtime. extra/comp_err.c: Don't use DBUG after my_end, crashes on Windows with USE_TLS. include/my_dbug.h: Add missing DBUG_LEAVE in non-debug builds. include/my_pthread.h: Add comment explaining USE_TLS. libmysql/cmakelists.txt: Add USE_TLS to avoid crashing when loading libmysql.dll at runtime. mysys/cmakelists.txt: Add USE_TLS to avoid crashing when loading libmysql.dll at runtime. mysys/my_init.c: Don't use DBUG after my_thread_end(), as it crashes on Windows TLS.
This commit is contained in:
parent
c8caeebf85
commit
e29144b4b5
6 changed files with 23 additions and 7 deletions
|
|
@ -1,5 +1,8 @@
|
|||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR")
|
||||
# Need to set USE_TLS, since mysys is linked into libmysql.dll and
|
||||
# libmysqld.dll, and __declspec(thread) approach to thread local storage does
|
||||
# not work properly in DLLs.
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR -DUSE_TLS")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX -DUSE_SYMDIR -DUSE_TLS")
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/zlib ${CMAKE_SOURCE_DIR}/include)
|
||||
ADD_LIBRARY(mysys array.c charset-def.c charset.c checksum.c default.c default_modify.c
|
||||
|
|
|
|||
|
|
@ -134,7 +134,10 @@ void my_end(int infoflag)
|
|||
*/
|
||||
FILE *info_file= DBUG_FILE;
|
||||
my_bool print_info= (info_file != stderr);
|
||||
DBUG_ENTER("my_end");
|
||||
/* We do not use DBUG_ENTER here, as after cleanup DBUG is no longer
|
||||
operational, so we cannot use DBUG_RETURN.
|
||||
*/
|
||||
DBUG_PRINT("info",("Shutting down"));
|
||||
if (!info_file)
|
||||
{
|
||||
info_file= stderr;
|
||||
|
|
@ -214,7 +217,6 @@ Voluntary context switches %ld, Involuntary context switches %ld\n",
|
|||
WSACleanup();
|
||||
#endif /* __WIN__ */
|
||||
my_init_done=0;
|
||||
DBUG_VOID_RETURN;
|
||||
} /* my_end */
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue