summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-02-10 13:43:53 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2023-02-10 13:43:53 +0200
commitdbab3e8d90e82aead7f3b504784a1334fda69b1d (patch)
treeaaab820a05398735303553f2cc1e479087da70ba /mysys
parent29cd17e8d94641f604131af7b4949e29dd34ce2b (diff)
parent6aec87544c675751141100d6efe3a2d943cb528f (diff)
downloadmariadb-git-dbab3e8d90e82aead7f3b504784a1334fda69b1d.tar.gz
Merge 10.6 into 10.8
Diffstat (limited to 'mysys')
-rw-r--r--mysys/charset.c2
-rw-r--r--mysys/my_largepage.c2
-rw-r--r--mysys/stacktrace.c8
3 files changed, 7 insertions, 5 deletions
diff --git a/mysys/charset.c b/mysys/charset.c
index da6180dccba..560c713a361 100644
--- a/mysys/charset.c
+++ b/mysys/charset.c
@@ -393,6 +393,8 @@ static int add_collation(struct charset_info_st *cs)
&my_charset_utf8mb4_unicode_ci,
cs);
newcs->m_ctype= my_charset_utf8mb4_unicode_ci.m_ctype;
+ if (init_state_maps(newcs))
+ return MY_XML_ERROR;
newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED;
#endif
}
diff --git a/mysys/my_largepage.c b/mysys/my_largepage.c
index 9cc1e19772b..b5193a9cd8e 100644
--- a/mysys/my_largepage.c
+++ b/mysys/my_largepage.c
@@ -376,7 +376,7 @@ uchar *my_large_malloc(size_t *size, myf my_flags)
ptr= NULL;
if (my_flags & MY_WME)
{
- if (large_page_size)
+ if (large_page_size && errno == ENOMEM)
{
my_printf_error(EE_OUTOFMEMORY,
"Couldn't allocate %zu bytes (Large/HugeTLB memory "
diff --git a/mysys/stacktrace.c b/mysys/stacktrace.c
index 844d8a0b28f..f203bba4d8d 100644
--- a/mysys/stacktrace.c
+++ b/mysys/stacktrace.c
@@ -34,6 +34,9 @@
#include <execinfo.h>
#endif
+#ifdef HAVE_gcov
+#include <gcov.h>
+#endif
/**
Default handler for printing stacktrace
*/
@@ -409,9 +412,6 @@ end:
/* Produce a core for the thread */
void my_write_core(int sig)
{
-#ifdef HAVE_gcov
- extern void __gcov_flush(void);
-#endif
signal(sig, SIG_DFL);
#ifdef HAVE_gcov
/*
@@ -419,7 +419,7 @@ void my_write_core(int sig)
information from this process, causing gcov output to be incomplete.
So we force the writing of coverage information here before terminating.
*/
- __gcov_flush();
+ __gcov_dump();
#endif
pthread_kill(pthread_self(), sig);
#if defined(P_MYID) && !defined(SCO)