mariadb/mysys
Dmitry Shulga 1310b3a02f MDEV-30811: Build issues on macOS 11.0
Building of MariaDB server version 11.0 and 11.1 fails
on MacOS 12.x (Monterey). Build failure happened on generating
header files from the error messages contained in the file
errmsg-utf8.txt. This process is performed by the utility comp_err
that crashes when it is run on MacOS Monterey.

comp_err invokes my_init at the very beginning of start before
initialization of thread environment done. While executing my_init
the function my_readlink is called. my_readlink is wrapper around
the system call readlink with extra errors handling. In case the
system call readlink returns error the following block of code is run
  if (my_thread_var)
    my_errno= errno;

my_thred_var is macros that expanded to invocation of
my_pthread_getspecific() against supplied thread specific key
THR_KEY_mysys. Unfortunately, the tsd key THR_KEY_mysys is initialized
right after the call of my_init() so return value of pthread_getspecific
is platform dependent. On Linux pthread_getspecific returns NULL
if key is not a valid TSD key. On MacOS, the effect of calling
pthread_getspecific() with a key value not obtained from pthread_key_create()
is undefined. So, on MacOS pthread_getspecific() returns some invalid address
where the errno value is written. It leads to a crash latter when the library
API function pthread_self() is called.

To fix the issue, initialization of thread environment is moved at very
beginning of the main() function in order to run it as the first step
to have full initiliazed environment at the moment when my_init()
is ivoked.
2023-03-16 16:25:57 +07:00
..
crc32 Remove unused header from crc32c.cc 2022-02-24 19:41:00 +11:00
array.c Added rowid_filter support to Aria 2023-02-03 10:42:28 +03:00
base64.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
ChangeLog
charset-def.c MDEV-27009 Add UCA-14.0.0 collations 2022-08-10 15:04:24 +02:00
charset.c MDEV-30661 UPPER() returns an empty string for U+0251 in uca1400 collations for utf8 2023-02-17 17:33:27 +04:00
CMakeLists.txt MDEV-27090 Windows client - ReadConsoleA does not work correctly with UTF8 codepage 2021-12-15 19:13:57 +01:00
crc32ieee.cc MDEV-27208: Extend CRC32() and implement CRC32C() 2022-01-21 19:24:00 +02:00
errors.c MDEV-29582 post-review fixes 2023-02-10 10:45:25 +01:00
file_logger.c Merge 10.4 into 10.5 2021-03-05 12:54:43 +02:00
get_password.c MDEV-26713 Set activeCodePage=UTF8 for windows programs 2021-12-15 19:13:57 +01:00
guess_malloc_library.c Fixed compiler warnings in guess_malloc_library 2018-01-15 16:44:44 +02:00
hash.c Merge 10.6 into 10.7 2023-01-10 13:58:03 +02:00
lf_alloc-pin.c Merge branch '10.3' into 10.4 2021-12-07 09:47:42 +01:00
lf_dynarray.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
lf_hash.cc MDEV-27088: Server crash on ARM (WMM architecture) due to missing barriers in lf-hash (10.5) 2021-11-30 15:16:16 +11:00
list.c Merge 10.4 into 10.5 2020-05-13 14:25:06 +03:00
ma_dyncol.c Added typedef decimal_digits_t (uint16) for number of digits in most 2021-05-19 22:27:27 +02:00
mf_arr_appstr.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_cache.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
mf_dirname.c MDEV-21581 Helper functions and methods for CHARSET_INFO 2020-01-28 12:29:23 +04:00
mf_fn_ext.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
mf_format.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
mf_getdate.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_iocache.c Merge 10.5 into 10.6 2021-06-21 17:49:33 +03:00
mf_iocache2.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
mf_keycache.c Merge 10.5 into 10.6 2022-09-26 14:34:43 +03:00
mf_keycaches.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_loadpath.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_pack.c MDEV-21581 Helper functions and methods for CHARSET_INFO 2020-01-28 12:29:23 +04:00
mf_path.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
mf_qsort.c fix clang build: check alignment the other way 2021-07-26 12:37:25 +03:00
mf_qsort2.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_radix.c cleanup: Typo fix appliccable -> applicable 2023-01-30 15:24:15 +02:00
mf_same.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_sort.c cleanup: Typo fix appliccable -> applicable 2023-01-30 15:24:15 +02:00
mf_soundex.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_tempdir.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
mf_tempfile.c MDEV-26601: mysys - O_TMPFILE ^ O_CREAT 2021-09-14 21:06:34 +10:00
mf_unixpath.c Update FSF Address 2019-05-11 21:29:06 +03:00
mf_wcomp.c Update FSF Address 2019-05-11 21:29:06 +03:00
mulalloc.c Added detection of memory overwrite with multi_malloc 2023-02-27 19:25:44 +02:00
my_access.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_addr_resolve.c Merge 10.5 into 10.6 2022-11-08 17:37:22 +02:00
my_alarm.c Update FSF Address 2019-05-11 21:29:06 +03:00
my_alloc.c Merge 10.6 into 10.8 2023-03-06 13:37:12 +02:00
my_atomic_writes.c MDEV-26029: Implement my_test_if_thinly_provisioned() for ScaleFlux 2021-06-29 15:20:16 +03:00
my_basename.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
my_bit.c Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
my_bitmap.c cleanup: MY_BITMAP mutex 2021-08-26 23:39:52 +02:00
my_chmod.c Merge branch '5.5' into 10.1 2019-05-11 19:15:57 +03:00
my_chsize.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_compare.c MDEV-21581 Helper functions and methods for CHARSET_INFO 2020-01-28 12:29:23 +04:00
my_compress.c Cleanup: Remove IF_VALGRIND 2022-04-25 09:40:40 +03:00
my_copy.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_cpu.c MDEV-19845: Make my_cpu.h self-contained 2020-02-01 14:56:05 +02:00
my_create.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
my_default.c MDEV-26221: DYNAMIC_ARRAY use size_t for sizes 2021-10-19 16:00:26 +03:00
my_delete.c Merge 10.6 into 10.7 2022-12-13 18:01:49 +02:00
my_div.c Update FSF Address 2019-05-11 21:29:06 +03:00
my_dlerror.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
my_error.c Merge branch '10.4' into 10.5 2020-11-01 14:26:15 +01:00
my_file.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
my_fopen.c MDEV-27142 - postfix 2022-11-04 13:50:36 +01:00
my_fstream.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_gethwaddr.c OS detection logic in my_gethwaddr.c is backwards 2022-11-13 13:12:37 +11:00
my_getncpus.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_getopt.c remove GET_ADJUST_VALUE 2023-02-10 12:59:36 +02:00
my_getpagesize.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_getsystime.c Windows : fix warning about potential division by 0 2021-05-09 13:26:03 +02:00
my_getwd.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_init.c MDEV-30811: Build issues on macOS 11.0 2023-03-16 16:25:57 +07:00
my_largepage.c Merge 10.6 into 10.8 2023-02-10 13:43:53 +02:00
my_lib.c MDEV-24841: More workarounds 2022-03-14 10:37:39 +02:00
my_libwrap.c Update FSF Address 2019-05-11 21:29:06 +03:00
my_likely.c cleanup: PSI key is *always* the first argument 2020-03-10 19:24:23 +01:00
my_lock.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_lockmem.c Merge 10.6 into 10.7 2022-06-21 18:02:41 +03:00
my_malloc.c Merge 10.6 into 10.7 2023-01-10 13:58:03 +02:00
my_memmem.c Update FSF Address 2019-05-11 21:29:06 +03:00
my_mess.c MDEV-23846: O_TMPFILE error in mysqlbinlog stream output breaks restore 2020-11-23 12:16:45 +05:30
my_minidump.cc MDEV-11499 mysqltest, Windows : improve diagnostics if server fails to shutdown 2021-09-24 11:49:28 +02:00
my_mkdir.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_mmap.c libpmem cmake macros 2020-02-04 23:23:50 +04:00
my_new.cc Fixes that enables my_new.cc (new wrapper using my_malloc) 2021-05-19 22:27:27 +02:00
my_once.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_open.c Added checking to protect against simultaneous double free in safemalloc 2021-05-19 22:54:14 +02:00
my_port.c Follow-up to changing FSF address 2019-05-11 18:30:45 +03:00
my_pread.c Merge 10.3 into 10.4 2019-06-19 10:49:00 +03:00
my_pthread.c Merge 10.5 into 10.6 2022-10-25 14:25:42 +03:00
my_quick.c Update FSF Address 2019-05-11 21:29:06 +03:00
my_rdtsc.c MDEV-27429: Support RISC-V cycle timer 2022-01-06 10:36:55 +11:00
my_read.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
my_redel.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_rename.c Merge 10.5 into 10.6 2022-12-13 16:58:58 +02:00
my_rnd.c remove dead code 2022-07-31 14:54:37 +02:00
my_safehash.c cleanup: PSI key is *always* the first argument 2020-03-10 19:24:23 +01:00
my_safehash.h Update FSF address 2019-05-10 20:52:00 +03:00
my_seek.c myseek: AIX has no "tell" 2021-03-19 11:14:53 +11:00
my_setuser.c mysys: rename ME_xxx flags to match plugin api 2018-06-04 12:32:23 +02:00
my_sleep.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_static.c Fixes that enables my_new.cc (new wrapper using my_malloc) 2021-05-19 22:27:27 +02:00
my_static.h Update FSF Address 2019-05-11 21:29:06 +03:00
my_symlink.c MDEV-30811: Build issues on macOS 11.0 2023-03-16 16:25:57 +07:00
my_symlink2.c MDEV-11412 Ensure that table is truly dropped when using DROP TABLE 2020-06-14 19:39:42 +03:00
my_sync.c MDEV-20685: compile fixes for Solaris/OSX/AIX 2020-04-29 12:02:47 +03:00
my_thr_init.c MDEV-24973 Performance schema duplicates rarely executed code for mutex operations 2021-03-02 14:32:37 +02:00
my_uuid.c cleanup: uuid 2021-10-29 18:29:01 +02:00
my_win_popen.cc Ensure that source files contain only valid UTF8 encodings (#2188) 2022-08-30 09:21:40 +01:00
my_wincond.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
my_winerr.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
my_winfile.c Fixes to make dbug traces from Windows easier to compare with Unix traces 2023-03-02 13:11:54 +02:00
my_winthread.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
my_wintoken.c Merge pull request #1221 from grooverdan/10.4-MDEV-18851-multiple-sized-large-page-support 2020-04-02 23:54:08 +04:00
my_write.c Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
mysys_priv.h Merge 10.5 into 10.6 2022-12-13 16:58:58 +02:00
psi_noop.c Merge branch 'merge-perfschema-5.7' into 10.5 2022-08-02 09:34:15 +02:00
ptr_cmp.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
queues.c Merge 10.4 into 10.5 2020-05-05 21:16:22 +03:00
safemalloc.c Merge 10.5 into 10.6 2021-10-28 09:08:58 +03:00
stacktrace.c MDEV-30573 Server doesn't build with GCOV by GCC 11+ 2023-02-06 21:25:02 +11:00
string.c MDEV-25602 get rid of __WIN__ in favor of standard _WIN32 2021-06-06 13:21:03 +02:00
test_charset.c MDEV-8334: Rename utf8 to utf8mb3 2021-05-19 06:48:36 +02:00
test_dir.c Update FSF Address 2019-05-11 21:29:06 +03:00
test_thr_mutex.c Update FSF address 2019-05-10 20:52:00 +03:00
test_xml.c Update FSF Address 2019-05-11 21:29:06 +03:00
testhash.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
thr_alarm.c Merge 10.5 into 10.6 2022-10-25 14:25:42 +03:00
thr_lock.c Merge 10.5 into 10.6 2021-05-04 07:37:38 +03:00
thr_mutex.c MDEV-26637: (explicit length) ASAN: main.metadata and user_variables.basic MTR failures after MDEV-26572 2021-10-12 10:01:07 +02:00
thr_rwlock.c MDEV-19773 : simplify implementation of Windows rwlock 2019-06-18 00:37:09 +01:00
thr_timer.c MDEV-15795 Stack exceeded if pthread_attr_setstacksize(&thr_attr,8196) succeeds 2022-10-22 10:24:14 +02:00
tree.c perfschema memory related instrumentation changes 2020-03-10 19:24:22 +01:00
typelib.c Added 'const' to arguments in get_one_option and find_typeset() 2021-02-08 12:16:29 +02:00
waiting_threads.c MDEV-26221: DYNAMIC_ARRAY use size_t for sizes 2021-10-19 16:00:26 +03:00
wqueue.c Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00