XtraDB compile error with VS 10 64-bit
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
High
|
Unassigned | ||
Percona-XtraDB |
Won't Fix
|
High
|
Hakan Küçükyılmaz |
Bug Description
Compiling XtraDB with VS 2010 on 64-bit Windows fails with several errors all of the type:
Error 10 error C2440: 'initializing' : cannot convert from 'ulint *' to 'unsigned long *' C:\Users\
The code in question is:
Error 10 error C2440: 'initializing' : cannot convert from 'ulint *' to 'unsigned long *' C:\Users\
static MYSQL_SYSVAR_
PLUGIN_
"Number of purge devoted threads. #### over 1 is EXPERIMENTAL ####",
NULL, NULL, 1, 0, 64, 0);
And line 10410 is
NULL, NULL, 1, 0, 64, 0);
Changed in maria: | |
assignee: | nobody → Hakan Küçükyılmaz (hakan-askmonty) |
status: | New → Confirmed |
importance: | Undecided → High |
affects: | maria → percona-xtradb |
Changed in maria: | |
status: | New → Confirmed |
importance: | Undecided → High |
Changed in maria: | |
milestone: | none → 5.2 |
tags: | added: windows |
Changed in maria: | |
status: | Fix Committed → Fix Released |
The problem is that xtradb tries to store a ulint using unsigned long. This works on all architecures except 64 bit Windows because ulint is defined as __int64 on that. There is currently no MYSQL_SYSVAR_xx that matches this, so I have added a MYSQL_SYSVAR_ULINT and changed the calls to this. See the attached patch.