Below is the list of changes that have just been committed into a local
6.0 repository of antony. When antony does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-12-20 17:18:35-08:00, antony@stripped +1 -0
Fix Windows 64 bit builds.
storage/falcon/Interlock.h@stripped, 2007-12-20 17:18:33-08:00, antony@stripped +6 -2
Fix Windows 64 bit builds.
See msdn2.microsoft.com/en-us/library/ms683560.aspx
diff -Nrup a/storage/falcon/Interlock.h b/storage/falcon/Interlock.h
--- a/storage/falcon/Interlock.h 2007-12-15 00:22:13 -08:00
+++ b/storage/falcon/Interlock.h 2007-12-20 17:18:33 -08:00
@@ -55,7 +55,7 @@ extern "C"
long InterlockedDecrement(long* lpAddend);
long InterlockedExchange(long* volatile addend, long value);
long InterlockedExchangeAdd(long* volatile addend, long value);
- long InterlockedCompareExchange(volatile int *Destination, int Exchange, int Comperand);
+ long InterlockedCompareExchange(volatile long *Destination, long Exchange, long Comperand);
//void* InterlockedCompareExchangePointer(void *volatile* *Destination, void *Exchange, void *Comperand);
}
#endif /* __MACHINEX64 */
@@ -80,7 +80,11 @@ extern "C"
inline int inline_cas (volatile int *target, int compare, int exchange)
{
#ifdef _WIN32
- return COMPARE_EXCHANGE(target, compare, exchange);
+ /*
+ Windows 64 bit model is LLP64, longs are still 4 bytes like ints.
+ Need to perform explicit type casting to make the compiler happy.
+ */
+ return COMPARE_EXCHANGE((volatile long *) target, compare, exchange);
#elif defined(__i386) || defined(__x86_64__)
char ret;
__asm__ __volatile__ (
| Thread |
|---|
| • bk commit into 6.0 tree (antony:1.2769) | antony | 21 Dec |