This adds support for building for mips64* architectures by using the
--use-cc-builtins configure option for ConcurrencyKit. Which is a
temporary workaround until proper MIPS supported is implemented in CK
upstream.
Closes GH-318.
In drv_mysql.c do not assume MYSQL_OPT_SSL_MODE to be a preprocessor
define. It is an mysql_option enum value with all MySQL
versions. Instead, do a configure-time check if that value is defined in
mysql.h.
The only required bit from Autoconf 2.64 is AS_VAR_IF. Which is in fact
provided, but just in case there is now a fallback implementation in
m4/sb_autoconf_compat.m4.
The only required bit from Autoconf 2.64 is AS_VAR_IF. Which is in fact
provided, but just in case there is now a fallback implementation in
m4/sb_autoconf_compat.m4.
Use ax_gcc_archflag.m4 to try to guess the most optimal -march value for
the target architecture, unless cross-compiling, or the value is set
explicitly with --with-gcc-arch.
Also, AArch64/ThunderX-specific updates to ax_gcc_archflag.m4.
In sb_concurrency_kit.m4, add --enable-lse to CK build flags if LSE
instructions are supported by the target.
Don't use the hard-coded libmysqlclient_r name for the client library,
because it is obsolete in 5.7. Instead, if the client library path is
specified explicitly with --with-mysql-libs, try both libmysqlclient_r
and libmysqlclient in that order.
The SB_ATTRIBUTE_FORMAT() now expands to __attribute__((format...) on
platforms that support it. Fixed a number of inconsistencies between
format string and arguments revealed by the format attribute.
and
LP#1412488: lrand48() doesn't scale well on highly concurrent platforms
Use re-entrant versions of standard RNG functions with thread-local
states. Seed thread-local RNGs from the RNG of the thread invoking
sb_thread_create() (i.e. the main thread).
The main thread RNG is now always seeded from timer, unless --rand-seed
is specified. Which obsoletes --rand-init, so it has been removed.