Windows CE Native Compilers
Posted by: Russ Keldorph
Hi, I'm Russ Keldorph, the dev lead for the native (ARM, MIPS, & SH-4) C++ compilers and runtime libraries for Windows CE. I started an MSDN blog a while ago, but came to realize that I'm a terrible blogger because I just don't have the motivation to post regularly. I'm moving to the CE Base team blog so that I can hide amongst all these other great posters and occasionally answer a particularly nasty question to which people really ought to know the answer.
At any rate, if you'd like to know something about the compilers, libraries or something else you think I might know the answer to, feel free to respond or send me email. My microsoft.com address is russellk. I'm particularly interested in errors and omissions in our documentation.
I look forward to hearing from you!
Comments
- Anonymous
April 14, 2006
Welcome to the blog, Russ! :-)
Sue - Anonymous
April 18, 2006
The comment has been removed - Anonymous
April 18, 2006
Can you be more specific about the problem(s) you are seeing? If the compiler is issuing
warning C4090: '<operator>' : different 'volatile' qualifiers
then you should add that qualifier to the target variable. If you can't, then see below.
If the compiler is issuing
warning C4197: 'volatile LPDWORD' : top-level volatile in cast is ignored
then this is usually a real bug because the volatile modifier doesn't do what most people think. It is modifying the pointer, not the pointed-at data. You should cast to (unsigned long volatile *) or create a new typedef like LPVDWORD that has the volatile built in and cast to that.
In general, you should not be removing volatile qualifiers unless the data is true not volatile. You should add the volatile qualifier to the target of the assignment. If that's not possible because you don't own the code, cast away the volatileness with a C-style cast or const_cast in C++ and report the bug to the owner of the code. - Anonymous
April 19, 2006
Sorry, i really forgot to tell that i was converting Lubbock PXA250 BSP from windows ce 4.2 to ce 5.
My error message is
warning C4197: 'volatile PBYTE' : top-level volatile in cast is ignored
i know it's a warning, but the compiler treat it as error.
This is from the bootloader from XSC1BD (lubbock) that is distributed with Windows ce 4.2. I already did the port, except from the bootloader that was unnecessary, but as i'm writing the article i was just wondering why this goes further on 4.2 compiler and not in 5. But as you explained, might be a bug from who wrote the code.
Thanks,
Marcelo