The fix was suggested by someone else, last year, on december, after I've tried
to get it to work with __pragma and type casting. But I'm not using it, because
it offsets the lines. I'm still commenting out VBOX_VCC_WERR ?= -WX
--- On Thu, 2/3/11, Huihong Luo <[email protected]> wrote:
From: Huihong Luo <[email protected]>
Subject: [vbox-dev] latest svn build failure on Windows
To: [email protected]
Date: Thursday, February 3, 2011, 10:21 PM
kBuild: Generating
C:/virtualbox-dev/vbox-latest/out/win.x86/release/obj/webservice/VirtualBox.xidl
kBuild: xsltproc VBoxSVC -
C:/virtualbox-dev/vbox-latest/src/VBox/Main/idl/midl.xsl
kBuild: Compiling RuntimeR3 -
C:/virtualbox-dev/vbox-latest/src/VBox/Runtime/common/misc/circbuf.cpp
circbuf.cpp
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(101) :
error C2220: warning treated as error - no
'object' file generated
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(101) :
warning C4739: reference to variable 'cbSi
ze' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(111) :
warning C4739: reference to variable 'cbSi
ze' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(138) :
warning C4739: reference to
variable 'uUse
d' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(163) :
warning C4739: reference to variable 'cbOl
d' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(182) :
warning C4739: reference to variable 'cbSi
ze' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(208) :
warning C4739: reference to variable 'cbOl
d' exceeds its storage space
kmk: ***
[C:/virtualbox-dev/vbox-latest/out/win.x86/release/obj/RuntimeR3/common/misc/circbuf.obj]
Error 2
The failing command:
-----Inline Attachment Follows-----
_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev
--- C:/vbox/include/iprt/asm.h original
+++ C:/vbox/include/iprt/asm.h fixed
@@ -1925,7 +1925,8 @@
do { \
+ void * puTemp = puRes; \
switch (sizeof(*(pu))) { \
- case 1: *(uint8_t *)(puRes) = ASMAtomicReadU8( (volatile uint8_t
*)(void *)(pu)); break; \
- case 2: *(uint16_t *)(puRes) = ASMAtomicReadU16((volatile uint16_t
*)(void *)(pu)); break; \
- case 4: *(uint32_t *)(puRes) = ASMAtomicReadU32((volatile uint32_t
*)(void *)(pu)); break; \
- case 8: *(uint64_t *)(puRes) = ASMAtomicReadU64((volatile uint64_t
*)(void *)(pu)); break; \
+ case 1: *(uint8_t *)(puTemp) = ASMAtomicReadU8( (volatile uint8_t
*)(void *)(pu)); break; \
+ case 2: *(uint16_t *)(puTemp) = ASMAtomicReadU16((volatile
uint16_t *)(void *)(pu)); break; \
+ case 4: *(uint32_t *)(puTemp) = ASMAtomicReadU32((volatile
uint32_t *)(void *)(pu)); break; \
+ case 8: *(uint64_t *)(puTemp) = ASMAtomicReadU64((volatile
uint64_t *)(void *)(pu)); break; \
default: AssertMsgFailed(("ASMAtomicReadSize: size %d is not
supported\n", sizeof(*(pu)))); \
@@ -2536,5 +2537,6 @@
do { \
+ void * puTemp = puOld; \
switch (sizeof(*(pu))) { \
- case 4: *(uint32_t *)(puOld) = ASMAtomicAddU32((volatile uint32_t
*)(void *)(pu), (uint32_t)(uNew)); break; \
- case 8: *(uint64_t *)(puOld) = ASMAtomicAddU64((volatile uint64_t
*)(void *)(pu), (uint64_t)(uNew)); break; \
+ case 4: *(uint32_t *)(puTemp) = ASMAtomicAddU32((volatile
uint32_t *)(void *)(pu), (uint32_t)(uNew)); break; \
+ case 8: *(uint64_t *)(puTemp) = ASMAtomicAddU64((volatile
uint64_t *)(void *)(pu), (uint64_t)(uNew)); break; \
default: AssertMsgFailed(("ASMAtomicAddSize: size %d is not
supported\n", sizeof(*(pu)))); \
@@ -2605,5 +2607,6 @@
do { \
+ void * puTemp = puOld; \
switch (sizeof(*(pu))) { \
- case 4: *(uint32_t *)(puOld) = ASMAtomicSubU32((volatile uint32_t
*)(void *)(pu), (uint32_t)(uNew)); break; \
- case 8: *(uint64_t *)(puOld) = ASMAtomicSubU64((volatile uint64_t
*)(void *)(pu), (uint64_t)(uNew)); break; \
+ case 4: *(uint32_t *)(puTemp) = ASMAtomicSubU32((volatile
uint32_t *)(void *)(pu), (uint32_t)(uNew)); break; \
+ case 8: *(uint64_t *)(puTemp) = ASMAtomicSubU64((volatile
uint64_t *)(void *)(pu), (uint64_t)(uNew)); break; \
default: AssertMsgFailed(("ASMAtomicSubSize: size %d is not
supported\n", sizeof(*(pu)))); \
_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev