<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<STYLE>.hmmessage P {
        PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
BODY.hmmessage {
        FONT-SIZE: 10pt; FONT-FAMILY: Verdana
}
</STYLE>

<META content="MSHTML 6.00.6000.16735" name=GENERATOR></HEAD>
<BODY class=hmmessage>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>Hi,</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>&nbsp;Glad to know MPICH2+MingW is working for you in 
32-bit windows.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>&nbsp;There are two ways to fix your problem with 
MPICH2+MingW on 64-bit windows,</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>1) Use 32-bit version of MPICH2 on your 64-bit windows 
machine (Uninstall any 64-bit version of MPICH2 before you install 32-bit 
version of MPICH2). AFAIK Cygwin distributions are 32-bit and we provide default 
support for Cygwin+gcc on 32-bit platforms only.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>2) Let us know if you want to build 64-bit binaries 
using MPICH2+MingW (The defns for windows fixed width ints - __int* - is in 
_mingw.h, which is included by all MingW header files. So include 
&lt;sys/types.h&gt; before including "mpi.h" and you should be able to get rid 
of errors with undefined MS-extended types. However we don't ship the gcc libs, 
*.a,&nbsp;with 64-bit version of MPICH2. Let me know if you need them.). 
</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>&nbsp;If you want to compile MPICH2 on&nbsp;windows 
(without using Visual Studio compiler)&nbsp;try compiling MPICH2 using Cygwin. 
Let us know if it works for you (We regularly test MPICH2+Cygwin. You won't have 
the problem with unsupported poll() if you use Cygwin - Cygwin libs do the 
abstraction for you.).</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>&nbsp;Let us know the results.</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009></SPAN></FONT>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>Regards,</SPAN></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff><SPAN 
class=049304215-05012009>Jayesh</SPAN></FONT></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma><B>From:</B> mpich-discuss-bounces@mcs.anl.gov 
[mailto:mpich-discuss-bounces@mcs.anl.gov] <B>On Behalf Of </B>ting 
lei<BR><B>Sent:</B> Sunday, January 04, 2009 5:46 PM<BR><B>To:</B> 
mpich-discuss@mcs.anl.gov<BR><B>Subject:</B> Re: [mpich-discuss] question 
regarding compiling/linking under MingW (MPICH2 1.08)<BR></FONT><BR></DIV>
<DIV></DIV>Hi,<BR>&nbsp;<BR>Thanks a lot for your reply. <BR>I just read an 
infinitely long post that discusses whether __int64 is dead, and realized that I 
get into something taboo regarding ms specific vs c99.&nbsp;<BR>There is&nbsp;a 
lot of discussion of aethetics there, ..., to no avail though.<BR>&nbsp;<BR>Just 
for the sake of the problem, I used the binary distribution for Win64. Below is 
my MPICH2/lib&nbsp; <BR>$ ls /c/MPICH2/lib/<BR>TraceInput.lib&nbsp; 
fmpe.lib&nbsp;&nbsp;&nbsp;&nbsp; irlog2rlog.lib&nbsp; 
mpi.lib<BR>cxx.lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
fmpich2.lib&nbsp; mpe.lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
rlog.lib<BR>&nbsp;<BR>In the win32 version, I did see libmpi.a in the same 
folder. But I tried removing that file, and was able to compile and 
link.<BR>&nbsp;<BR>My last effort was to use&nbsp;&nbsp; <BR>typedef long long 
MPI_Aint<BR>and go back to mingw+gcc3.4.5+vista64, and the error message 
was:<BR>&nbsp;<BR>$ gcc -I /c/MPICH2/include/ test.c -L /c/MPICH2/lib/ 
-lmpi&nbsp; <BR>C:/Users/ting/AppData/Local/Temp/cciBiEaP.o:test.c:(.text+0x38): 
undefined reference to 
`MPI_Init'<BR>C:/Users/ting/AppData/Local/Temp/cciBiEaP.o:test.c:(.text+0x4b): 
undefined reference to `MPI_Comm_rank'<BR>collect2: ld returned 1 exit 
status<BR>&nbsp;<BR>As a side note, I tried to compile one from source using 
mingw under Win64, <BR>but it was complaining about missing poll() function etc. 
Somebody complained in a MingW list, but a mingw person believes that MPI under 
windows shouldn't<BR>use poll() anyways. I tried to add some other code 
downloaded from the internet that fakes a poll(), then I got a problem with 
threads. And I realized that the job is<BR>beyond a novice like 
me.<BR>&nbsp;<BR>Thanks again for your help,<BR>hope some day this problem will 
disappear. But maybe the mingw idea was wrong -- a minimal set of unix functions 
with native winxx impl. Lovely little piece that brings <BR>unix to the dull 
windows command line though.<BR>&nbsp;<BR>&nbsp;<BR>T.<BR><BR><BR><BR>&gt; Date: 
Sun, 4 Jan 2009 20:21:42 +0100<BR>&gt; From: ddkrause@uni-bonn.de<BR>&gt; To: 
mpich-discuss@mcs.anl.gov<BR>&gt; Subject: Re: [mpich-discuss] question 
regarding compiling/linking under MingW (MPICH2 1.08)<BR>&gt; <BR>&gt; 
Hi,<BR>&gt; <BR>&gt; ting lei wrote:<BR>&gt; &gt; *Hi, Dorian*<BR>&gt; 
&gt;<BR>&gt; &gt; Thanks a lot for your prompt reply.<BR>&gt; &gt; Your command 
line<BR>&gt; &gt; &gt; gcc -I /c/MPICH2/include/ test.c -L/c/MPICH2/lib/ 
-lmpi<BR>&gt; &gt; solves the first problem perfectly on win32.<BR>&gt; <BR>&gt; 
Good to hear.<BR>&gt; <BR>&gt; &gt;<BR>&gt; &gt; On Win64, I see the following 
from line 333 onwards about MPI_Aint<BR>&gt; &gt; "<BR>&gt; &gt; /* Definitions 
that are determined by configure. */<BR>&gt; &gt; typedef __int64 
MPI_Aint;<BR>&gt; &gt; typedef int MPI_Fint;<BR>&gt; &gt; #define 
MPI_AINT_FMT_DEC_SPEC "%I64d"<BR>&gt; &gt; #define MPI_AINT_FMT_HEX_SPEC 
"%I64x"<BR>&gt; &gt; "<BR>&gt; &gt; It seems that configure made a choice of 
__int64 for the Win64 package <BR>&gt; &gt; instead of long under linux. Any 
idea how this might be solved?<BR>&gt; &gt; I have also attached the output with 
the -E option in the attachment <BR>&gt; &gt; err.txt for your 
reference.<BR>&gt; &gt; BTW, I tried to manually change<BR>&gt; &gt; typedef 
__int64 MPI_Aint;<BR>&gt; &gt; to<BR>&gt; &gt; typedef long MPI_Aint;<BR>&gt; 
&gt; and then, I got:<BR>&gt; &gt; gcc -I /c/MPICH2/include/ test.c -L 
/c/MPICH2/lib/ -lmpi <BR>&gt; &gt; test.c: In function 'main':<BR>&gt; &gt; 
test.c:15: warning: incompatible implicit declaration of built-in <BR>&gt; &gt; 
function 'printf'<BR>&gt; &gt; 
C:/Users/ting/AppData/Local/Temp/ccsAr9gj.o:test.c:(.text+0x22): <BR>&gt; &gt; 
undefined reference to `_MPI_Init'<BR>&gt; &gt; 
C:/Users/ting/AppData/Local/Temp/ccsAr9gj.o:test.c:(.text+0x36): <BR>&gt; &gt; 
undefined reference to `_MPI_Comm_rank'<BR>&gt; &gt; collect2: ld returned 1 
exit status<BR>&gt; &gt;<BR>&gt; &gt; or the following for using g++:<BR>&gt; 
&gt;<BR>&gt; &gt; $ g++ -I /c/MPICH2/include/ test.c -L /c/MPICH2/lib/ 
-lmpi<BR>&gt; &gt; 
C:/Users/ting/AppData/Local/Temp/ccPO9opx.o:test.c:(.text+0x22): <BR>&gt; &gt; 
undefined reference to `_MPI_Init'<BR>&gt; &gt; 
C:/Users/ting/AppData/Local/Temp/ccPO9opx.o:test.c:(.text+0x36): <BR>&gt; &gt; 
undefined reference to `_MPI_Comm_rank'<BR>&gt; &gt; collect2: ld returned 1 
exit status<BR>&gt; &gt;<BR>&gt; <BR>&gt; You said that you downloaded the 
binary distribution, correct? I have no <BR>&gt; experiences with MPICH2 on 
Windows<BR>&gt; but I would suspect that the libraries were build with 
Microsofts C/C++ <BR>&gt; compiler cl and on Win64 the MingGW gcc<BR>&gt; 
compiler and cl are not compatible. __int64 is a Microsoft specific <BR>&gt; 
extension to C/C++ 
(http://msdn.microsoft.com/en-us/library/29dh1w7z.aspx).<BR>&gt; Also it seems 
that gcc does some sort of name-mangling (adding an <BR>&gt; underscore to the 
function name). This is rather strange<BR>&gt; for a C compiler...<BR>&gt; 
<BR>&gt; Probably you'r right that its a gcc 4.3 issue. Maybe some else has more 
<BR>&gt; insight into this.<BR>&gt; <BR>&gt; Interestingly he doesn't say that 
he can't find libmpi.a. Are you sure <BR>&gt; that it is not there?<BR>&gt; 
<BR>&gt; BTW: typedef long MPI_Aint might be a problem because sizeof(long) = 4 
<BR>&gt; on Windows at least with the Microsoft compiler. Don't know 
what<BR>&gt; gcc does in this situation.<BR>&gt; <BR>&gt; Dorian<BR>&gt; 
<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; Thanks again.<BR>&gt; &gt;<BR>&gt; &gt; 
T.<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; &gt; Date: Sun, 4 Jan 2009 18:29:23 
+0100<BR>&gt; &gt; &gt; From: ddkrause@uni-bonn.de<BR>&gt; &gt; &gt; To: 
mpich-discuss@mcs.anl.gov<BR>&gt; &gt; &gt; Subject: Re: [mpich-discuss] 
question regarding compiling/linking <BR>&gt; &gt; under MingW (MPICH2 
1.08)<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Hi<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; 
ting lei wrote:<BR>&gt; &gt; &gt; &gt; Hi,<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; 
&gt; &gt; Sorry to bother all. I have some questions regarding using MPICH2 
<BR>&gt; &gt; 1.08<BR>&gt; &gt; &gt; &gt; with MingW<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt; I tried compile MPICH2 1.08 on two different 
machines, and have met<BR>&gt; &gt; &gt; &gt; different problems. I was 
wondering if someone with a lot experience<BR>&gt; &gt; &gt; &gt; could help me 
out here. thanks in advance.<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; 1) 
The most successful attempt was on a win32 platform, XPSP3 with<BR>&gt; &gt; 
&gt; &gt; MingW+gcc3.4.5<BR>&gt; &gt; &gt; &gt; The command line I used 
was:<BR>&gt; &gt; &gt; &gt; gcc -I /c/MPICH2/include/ -lmpi -L/c/MPICH2/lib/ 
test.c<BR>&gt; &gt; &gt; &gt; and I get the following error:<BR>&gt; &gt; &gt; 
&gt; C:/DOCUME~1/ting/LOCALS~1/Temp/cc40AD3K.o:test.c:(.text+0x38):<BR>&gt; &gt; 
&gt; &gt; undefined reference to `MPI_Init'<BR>&gt; &gt; &gt; &gt; 
C:/DOCUME~1/ting/LOCALS~1/Temp/cc40AD3K.o:test.c:(.text+0x4b):<BR>&gt; &gt; &gt; 
&gt; undefined reference to `MPI_Comm_rank'<BR>&gt; &gt; &gt; &gt; collect2: ld 
returned 1 exit status<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Could you try<BR>&gt; 
&gt; &gt;<BR>&gt; &gt; &gt; gcc -I /c/MPICH2/include/ test.c -L/c/MPICH2/lib/ 
-lmpi<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Since your testprogram depends on the 
mpi library you need to specify<BR>&gt; &gt; &gt; the library after your program 
because the linker goes from left to <BR>&gt; &gt; right.<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt; It seems that the library file libmpi.a is corrected 
specified,<BR>&gt; &gt; &gt; &gt; because if I change it to -lmpi1 it will 
report<BR>&gt; &gt; &gt; &gt; 
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe:<BR>&gt; 
&gt; &gt; &gt; cannot find -lmpi1<BR>&gt; &gt; &gt; &gt; collect2: ld returned 1 
exit status<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; 
2) My less successful attempt was on a Win64 (Vista64) platform with<BR>&gt; 
&gt; &gt; &gt; MingW + gcc4.3:<BR>&gt; &gt; &gt; &gt; I tried installing the 
mpich2-1.0.8-win-x86-64.msi. but<BR>&gt; &gt; &gt; &gt; a) after the 
installation, I couldn't find libmpi.a in MPICH2\lib<BR>&gt; &gt; &gt; &gt; 
folder as I was able to in case 1).b) when I am compiling the toy <BR>&gt; &gt; 
test<BR>&gt; &gt; &gt; &gt; program, I get many errors like this:<BR>&gt; &gt; 
&gt; &gt;<BR>&gt; &gt; &gt; &gt; In file included from test.c:1:<BR>&gt; &gt; 
&gt; &gt; c:/MPICH2/include/mpi.h:334: error: expected '=', ',', ';', 'asm' 
or<BR>&gt; &gt; &gt; &gt; '__attribute__' before 'MPI_Aint'<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt; Is this a gcc4.x problem?<BR>&gt; &gt; &gt;<BR>&gt; 
&gt; &gt; Did you take a look at mpi.h line 334? On Linux I can see typedef 
long<BR>&gt; &gt; &gt; MPI_Aint; . Could you compile with the -E flag to see the 
preprocessor<BR>&gt; &gt; &gt; output? Maybe something is overwriting 
long?<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; 
Best<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; T<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; <BR>&gt; &gt; 
------------------------------------------------------------------------<BR>&gt; 
&gt; &gt; &gt; From: jayesh@mcs.anl.gov<BR>&gt; &gt; &gt; &gt; To: 
leitingl@hotmail.com<BR>&gt; &gt; &gt; &gt; CC: 
mpich-discuss@mcs.anl.gov<BR>&gt; &gt; &gt; &gt; Subject: RE: [mpich-discuss] 
(no subject) - mingw<BR>&gt; &gt; &gt; &gt; Date: Tue, 2 Dec 2008 13:34:18 
-0600<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Hi,<BR>&gt; &gt; &gt; &gt; 
You could try installing MPICH2 on windows (from the installer<BR>&gt; &gt; &gt; 
&gt; available at<BR>&gt; &gt; &gt; &gt; <BR>&gt; &gt; 
http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads) 
<BR>&gt; &gt;<BR>&gt; &gt; &gt; &gt; and compile your code and link with the gcc 
libs (*.a) provided with<BR>&gt; &gt; &gt; &gt; the installation (MPICH2\lib 
directory).<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; Regards,<BR>&gt; &gt; 
&gt; &gt; Jayesh<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; <BR>&gt; &gt; 
------------------------------------------------------------------------<BR>&gt; 
&gt; &gt; &gt; *From:* mpich-discuss-bounces@mcs.anl.gov<BR>&gt; &gt; &gt; &gt; 
[mailto:mpich-discuss-bounces@mcs.anl.gov] *On Behalf Of *ting lei<BR>&gt; &gt; 
&gt; &gt; *Sent:* Tuesday, December 02, 2008 1:31 PM<BR>&gt; &gt; &gt; &gt; 
*To:* mpich-discuss@mcs.anl.gov<BR>&gt; &gt; &gt; &gt; *Subject:* 
[mpich-discuss] (no subject)<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; 
Hi,<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt; This might be a newbie 
question.<BR>&gt; &gt; &gt; &gt; I see in this thread that people can compile 
MPICH2 with MingW. I <BR>&gt; &gt; tried that with MingW (gcc 4.3 and 3.4x) 
several times but<BR>&gt; &gt; &gt; &gt; I was never able to get past the 
./configure step.<BR>&gt; &gt; &gt; &gt; /"I have compiled a C executable using 
the MPICH2 Windows <BR>&gt; &gt; libraries and //MinGW./"<BR>&gt; &gt; &gt; &gt; 
Could someone please give me some pointers how to compile such an <BR>&gt; &gt; 
executable?<BR>&gt; &gt; &gt; &gt; More specifically, do I have to compile 
MPICH2 itself from source <BR>&gt; &gt; using MinGW then use some program such 
as mpicc??<BR>&gt; &gt; &gt; &gt; or should I just compile a regular c program 
and run it with <BR>&gt; &gt; mpiexec.exe ?<BR>&gt; &gt; &gt; &gt; If I were to 
compile MPICH2 itself with MingW, what other packages <BR>&gt; &gt; do I need 
except the latest version of MingW?<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt; Many thanks for your help<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; &gt;<BR>&gt; &gt; &gt; 
&gt;<BR>&gt; &gt; &gt; &gt; 
&lt;http://clk.atdmt.com/MRT/go/127032869/direct/01/&gt;<BR>&gt; &gt; &gt; &gt; 
<BR>&gt; &gt; 
------------------------------------------------------------------------<BR>&gt; 
&gt; &gt; &gt; It&#8217;s the same Hotmail&reg;. If by &#8220;same&#8221; you mean up to 70% faster. 
Get<BR>&gt; &gt; &gt; &gt; your account now.<BR>&gt; &gt; &gt; &gt; <BR>&gt; 
&gt; 
&lt;http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_broad1_122008&gt;<BR>&gt; 
&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; 
------------------------------------------------------------------------<BR>&gt; 
&gt; Send e-mail faster without improving your typing skills. Get your <BR>&gt; 
&gt; Hotmail&reg; account. <BR>&gt; &gt; 
&lt;http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_speed_122008&gt;<BR>&gt; 
<BR><BR><BR>
<HR>
Life on your PC is safer, easier, and more enjoyable with Windows Vista&reg;. <A 
href="http://clk.atdmt.com/MRT/go/127032870/direct/01/" target=_new>See how 
</A></BODY></HTML>