<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD>
<BODY><!-- Converted from text/plain format -->
<P><FONT size=2><FONT size=3>Hi,<BR><BR>As far as for the compiler bugs it seems
that it has a simple workaround, see bellow for ideas that I have.<BR><BR>The
main issue that I currently see is that we are getting close to a new release,
and replacing the compiler so close to a release is not that good idea. As you
said, for now we can continue based on the binary computability of
vista.<BR><BR>Thanks<BR>Tzachi<BR><BR>2 ways in order to work around the
compiler bugs:<BR>As remembered the problem is because we have to make sure that
we reserve 64 bit for a pointer even on 32 bit systems. The obvious way to do
this is to use __ptr64 that doesn't work on new builds.<BR>1) As was suggested
in the OSR forum, one can simply change the struct to use a union of the pointer
and some 64 bits value.<BR>2) one can use the same struct as before but do some
other thing:<BR>void test(long
val)<BR>{<BR> if (val ==
0)<BR>
return;<BR><BR> // the following line
crashes the 6000/6001 WDK 32-bit compiler
with<BR> // error C1001: An internal
error has occurred in the
compiler.<BR>
//var1->funcPtr(0);<BR><FONT
color=#ff0000> var2 =
var1->funcPtr;<BR> var2(0); // Very
ugly but Compiles well<BR></FONT>}<BR></FONT><BR><BR>> -----Original
Message-----<BR>> From: ofw-bounces@lists.openfabrics.org<BR>> [<A
href="mailto:ofw-bounces@lists.openfabrics.org">mailto:ofw-bounces@lists.openfabrics.org</A>]
On Behalf Of Jan Bottorff<BR>> Sent: Friday, May 25, 2007 10:21 PM<BR>>
To: Mirko Benz; ofw@lists.openfabrics.org<BR>> Subject: RE: [ofw] Vista
supported?<BR>><BR>> I know the WinIB source tree will not compile with
the Vista<BR>> (or later) WDK (at least will not compile for checked
32-bit<BR>> platforms). The problem is the compiler aborts when<BR>>
processing __ptr64 pointers inside a structure. The WinIB<BR>> stack uses
this in LOTS of places.<BR>><BR>> I'm not super optimistic about Microsoft
fixing the compiler<BR>> anytime soon, because I also see compiler bugs in
the code<BR>> generation for InterlockedAnd (and other Interlocked<BR>>
functions) that have been know for more than a year, are not<BR>> fixed. The
most recent WDK betas seems to have a fix for<BR>> InterlockedAnd in the
debug build, but the free build still<BR>> gets it wrong.<BR>><BR>> The
following will reproduce the __ptr64 bug:<BR>><BR>>
---------------------------------------------------------------<BR>> #include
<ntddk.h><BR>><BR>> struct
{<BR>> void (* __ptr64 funcPtr)(long
val); } *var1;<BR>><BR>><BR>><BR>><BR>> void test(long
val)<BR>> {<BR>> if (val == 0)<BR>>
return;<BR>><BR>> // the following line
crashes the 6000/6001 WDK 32-bit<BR>> compiler with<BR>>
// error C1001: An internal error has occurred in
the compiler.<BR>>
var1->funcPtr(0);<BR>> }<BR>><BR>> NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING<BR>>
RegistryPath)<BR>> {<BR>> var1->funcPtr
= &test;<BR>> test(1);<BR>>
return STATUS_SUCCESS;<BR>> }<BR>>
--------------------------------------------------------------<BR>><BR>>
The InterlockedAnd bug shows up in code like:<BR>><BR>> // atomic test and
clear<BR>> If (InterlockedAnd(&flag, 0)) {<BR>>
// this code never executes<BR>>
// InterlockedAnd is documented to return the old
value<BR>> // but actually returns the
modified value }<BR>><BR>> Binaries compiled using the W2k3 SP1 DDK can
run on Vista,<BR>> but doing development on the latest tools is a
serious<BR>> problem. I view it a Microsoft problem, since it was<BR>>
something in the Vista (and later) WDK compiler that broke.<BR>><BR>> -
Jan<BR>><BR>><BR>> -----Original Message-----<BR>> From:
ofw-bounces@lists.openfabrics.org<BR>> [<A
href="mailto:ofw-bounces@lists.openfabrics.org">mailto:ofw-bounces@lists.openfabrics.org</A>]
On Behalf Of Mirko Benz<BR>> Sent: Friday, May 25, 2007 1:38 AM<BR>> To:
ofw@lists.openfabrics.org<BR>> Subject: [ofw] Vista
supported?<BR>><BR>> Hi,<BR>><BR>> What is the status of support for
Vista? Should SRP work?<BR>><BR>> Regards,<BR>> Mirko<BR>>
_______________________________________________<BR>> ofw mailing list<BR>>
ofw@lists.openfabrics.org<BR>> <A
href="http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw">http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw</A><BR>>
_______________________________________________<BR>> ofw mailing list<BR>>
ofw@lists.openfabrics.org<BR>> <A
href="http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw">http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw</A><BR>>
</FONT></P></BODY></HTML>