Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0(EOL), 10.1(EOL)
-
10.1.23
Description
InnoDB up to MariaDB 10.1 defines the compile-time constant UNIV_WORD_SIZE incorrectly on 64-bit Windows systems as 4:
#ifdef _WIN32
|
#define UNIV_WORD_SIZE 4
|
#elif defined(_WIN64)
|
#define UNIV_WORD_SIZE 8
|
#else
|
/** MySQL config.h generated by GNU autoconf will define SIZEOF_LONG in Posix */
|
#define UNIV_WORD_SIZE SIZEOF_LONG
|
#endif
|
This error has been corrected in MariaDB Server 10.2. The problem is that _WIN32 is defined also on 64-bit Windows, causing UNIV_WORD_SIZE to be defined as the incorrect value 4 instead of 8.
Furthermore, the logic around updating some file counters is refusing to use atomic operations on 32-bit systems, and the variables os_n_pending_reads, os_n_pending_writes are redundant.
Attachments
Issue Links
- relates to
-
MDEV-12488 Remove type mismatch in InnoDB printf-like calls
- Closed