[mpich-discuss] Linking problem (underscore prefix)

Jayesh Krishna jayesh at mcs.anl.gov
Tue Oct 5 15:24:34 CDT 2010


Hi,
 Ok, then it looks like your application is 64-bit (x64) and the netcdf library is compiled as a 32-bit library (Unless you have a fairly recent version of gcc - Not the ones installed using Cygwin installer from most repos - & you use -m64 flag to compile your code, the default builds are 32-bit).
 The error message states that you are trying to link x86 (IA32 - 32-bit) binary/lib with a x64 (x86_64 - 64-bit) binary/lib.
 
Regards,
Jayesh
----- Original Message -----
From: "Kunal Rao" <kunalgrao at gmail.com>
To: "Jayesh Krishna" <jayesh at mcs.anl.gov>
Cc: parallel-netcdf at lists.mcs.anl.gov, mpich-discuss at mcs.anl.gov
Sent: Tuesday, October 5, 2010 2:29:36 PM GMT -06:00 US/Canada Central
Subject: Re: [mpich-discuss] Linking problem (underscore prefix)

Hi 


I have not used the MPICH2 installers (i.e. *.msi binary packages) for Windows. I have picked up the source code 
(mpich2-1.2.1p1.tar.gz) and did configure/make/make install in cygwin env. on Windows and then used this MPI implementation 
while building parallel netcdf. 


Thanks & Regards, 
Kunal 


On Tue, Oct 5, 2010 at 3:10 PM, Jayesh Krishna < jayesh at mcs.anl.gov > wrote: 


Hi, 
It looks like you have installed 32-bit versions of netcdf and using 64-bit version of MPICH2. 
Uninstall the existing version of MPICH2 and install the 32-bit version (mpich2-1.2.1p1-win-ia32.msi) and let us know if it works. 


Regards, 
Jayesh 
----- Original Message ----- 
From: "Kunal Rao" < kunalgrao at gmail.com > 



To: mpich-discuss at mcs.anl.gov , parallel-netcdf at lists.mcs.anl.gov 
Sent: Monday, October 4, 2010 2:49:44 PM GMT -06:00 US/Canada Central 
Subject: Re: [mpich-discuss] Linking problem (underscore prefix) 


Hi 


Thanks for creating the bug report. Hope that will be fixed soon. 


Until then, do you guys have any suggestions, that I could try out ? I have parallel netcdf library built on Windows ( using gcc and gfortran while building MPICH2 and parallel netcdf ). Now while linking with my application built with Intel compiler, as discussed before, there is unresolved external symbol errors. ( prefix appended to the parallel netcdf symbols). 



I tried using the objcopy tool to remove those prefixes from the library using: 


$objcopy --remove-leading-char libpnetcdf.lib libpnetcdf.lib 


It then removed all those underscore prefix from the symbols, but then while linking with the application, it gave the following error: 
-------- 
libpnetcdf.lib(dim.o) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 
----- 


I am working on Windows Server 2008 R2, Enterprise Edition. Please let me know if you have any ideas/suggestions that I could try out. 


Thanks & Regards, 
Kunal 







On Mon, Oct 4, 2010 at 3:26 PM, < chan at mcs.anl.gov > wrote: 



Hi Kunal, 

Thanks for informing us the problem. There are bugs in Fortran77 binding 
configure tests that prevent one from using windows version of ifort on 
cygwin, namely these tests hardwire ".o" as object file extension instead 
of using the portable OBJEXT (same for EXEEXT). I created a bug report for 
this problem... 

https://trac.mcs.anl.gov/projects/mpich2/ticket/1111 

A.Chan 




----- "Kunal Rao" < kunalgrao at gmail.com > wrote: 

> Hi Jayesh, 
> 
> Thanks for your reply. Well, I tried compiling MPICH2 with Intel 
> compiler 
> but it failed during "configure" with the following error message: 
> 
> ------------------- 
> 
> configure: error: Unable to configure with Fortran support because 
> configure 
> could not determine the size of a Fortran INTEGER. Consider setting 
> CROSS_F77 
> _SIZEOF_INTEGER to the length in bytes of a Fortran INTEGER 
> 
> ------------------- 
> 
> I am attaching the config.log created while configuring MPICH2 with 
> Intel 
> compiler. 
> 
> So as of now, MPICH2 and parallel netcdf are built with gcc and 
> gfortran. 
> Whereas my application is being built with Intel compiler (it is a 
> requirement to use Intel compiler). So, there is some naming 
> convention 
> issue here I guess. 
> 
> Thanks & Regards, 
> Kunal 
> On Mon, Oct 4, 2010 at 10:16 AM, Jayesh Krishna < jayesh at mcs.anl.gov > 
> wrote: 
> 
> > Hi, 
> > Did you try using the same compiler (Intel compiler) for building 
> MPICH2, 
> > netcdf & your application ? 
> > 
> > Regards, 
> > Jayesh 
> > ----- Original Message ----- 
> > From: "Kunal Rao" < kunalgrao at gmail.com > 
> > To: mpich-discuss at mcs.anl.gov 
> > Cc: parallel-netcdf at lists.mcs.anl.gov 
> > Sent: Monday, October 4, 2010 11:19:04 AM GMT -06:00 US/Canada 
> Central 
> > Subject: Re: [mpich-discuss] Linking problem (underscore prefix) 
> > 
> > 
> > Hi 
> > 
> > 
> > As discussed before, I was able to create the parallel netcdf 
> library on 
> > Windows using the cygwin environment. I am having some issues while 
> linking 
> > this library with my application built with intel compilers ( I am 
> using 
> > intel compilers also through cygwin ). 
> > 
> > 
> > I know this kind of setup is not supported, but I would like to get 
> your 
> > inputs on this. Here is what I did: 
> > 
> > 
> > 1) The libpnetcdf.a library was created in /usr/local/lib folder. I 
> built 
> > libpnetcdf.lib library from this *.a library through the lib.exe 
> tool as 
> > follows: 
> > 
> > 
> > $ lib.exe /OUT:libpnetcdf.lib libpnetcdf.a 
> > 
> > 
> > 2) Now, I am trying to link this libpnetcdf.lib library with my 
> application 
> > ( using Intel compilers for building the application ). But while 
> linking, I 
> > am getting 28 unresolved external symbol (all related to the 
> libpnetcdf.lib 
> > library) errors such as this: 
> > 
> > 
> > ------------ 
> > io_ncmpi_def_dims.o : error LNK2019: unresolved external symbol 
> > ncmpi_def_dim referenced in function io_ncmpi_def_dims_ 
> > ----------- 
> > 
> > 
> > 3) When I checked in io_ncmpi_def_dim.o file for the symbol using : 
> $ 
> > dumpbin.exe /SYMBOLS io_ncmpi_def_dim.o 
> > 
> > I see this symbol as follows: 
> > 
> > ----------- 
> > 008 00000000 UNDEF notype () External | ncmpi_def_dim 
> > ----------- 
> > 
> > 
> > 
> > 4) When I check the same symbol in the libpnetcdf.lib library, I see 
> it as 
> > follows: 
> > 
> > ----------- 
> > 01B 00000000 UNDEF notype () External | _ncmpi_def_dim 
> > ----------- 
> > 
> > 
> > 
> > So basically, there is an underscore prefix in the symbol in the 
> library 
> > where as it is not there in the object file. Any thoughts on how to 
> resolve 
> > this ? 
> > 
> > 
> > Thanks & Regards, 
> > Kunal 
> > 
> > 
> > On Sat, Oct 2, 2010 at 7:11 PM, Kunal Rao < kunalgrao at gmail.com > 
> wrote: 
> > 
> > 
> > Hi 
> > 
> > 
> > I was able to configure and build the parallel netcdf library on 
> Windows 
> > using the cygwin environment and MPICH2 as the MPI implementation. I 
> still 
> > have to check if this library works with the application that I am 
> trying to 
> > link it to. 
> > 
> > 
> > Here are the steps that I have followed: 
> > a) Downloaded the MPICH2 source code (1.2.1p1) from 
> > http://www.mcs.anl.gov/research/projects/mpich2/ 
> > b) Did the regular configure/make/make install steps in the cygwin 
> > environment in Windows. 
> > ( set C compiler as gcc and Fortran compiler as gfortran) 
> > c) Downloaded parallel netcdf (parallel-netcdf-1.2.0.tar.gz) from 
> > http://trac.mcs.anl.gov/projects/parallel-netcdf/wiki/Download 
> > d) Again, did the regular configure/make/make install steps for 
> parallel 
> > netcdf in cygwin environment in Windows and used the previously 
> built MPICH2 
> > as the mpi implementation ( for the --with-mpi option) 
> > 
> > 
> > The steps went fine and the libpnetcdf.a library has been built on 
> Windows 
> > through the cygwin environment. I will next check if this links 
> properly and 
> > works with the application. 
> > 
> > 
> > Thanks & Regards, 
> > Kunal 
> > 
> > 
> > 
> > 
> > 
> > On Sat, Oct 2, 2010 at 2:49 PM, Jayesh Krishna < jayesh at mcs.anl.gov 
> > 
> > wrote: 
> > 
> > 
> > Hi, 
> > As Rob mentioned the error might be due to the way netcdf checks for 
> MPI-IO 
> > support. 
> > Can you give us details on how you configure netcdf with MPICH2 ? 
> > 
> > (PS: MPI-IO is available with MPICH2 on windows even if you use the 
> > installers for your installation.) 
> > 
> > 
> > Regards, 
> > Jayesh 
> > ----- Original Message ----- 
> > From: "Kunal Rao" < kunalgrao at gmail.com > 
> > To: mpich-discuss at mcs.anl.gov 
> > 
> > 
> > 
> > Sent: Saturday, October 2, 2010 12:08:52 PM GMT -06:00 US/Canada 
> Central 
> > Subject: Re: [mpich-discuss] query on MPICH2 on Windows 
> > 
> > 
> > Hi 
> > 
> > 
> > Initially, I had used the installers availabe at the MPICH 2 website 
> and 
> > that was giving the error mentioned before. I then, downloaded 
> > the source code and built MPICH2 from that (configure/make/make 
> install) in 
> > cygwin and linked this MPI while configuring parallel 
> > netcdf. Now, it is not giving that error and it moved ahead. 
> > 
> > 
> > Thanks & Regards, 
> > Kunal 
> > 
> > 
> > On Fri, Oct 1, 2010 at 8:18 PM, Jayesh Krishna < jayesh at mcs.anl.gov 
> > 
> > wrote: 
> > 
> > 
> > Hi, 
> > Did you build MPICH2 from source (configure/make/make install) under 
> cygwin 
> > environment ? Or did you install MPICH2 using installers available 
> at the 
> > MPICH2 website ? 
> > 
> > Regards, 
> > Jayesh 
> > 
> > 
> > 
> > ----- Original Message ----- 
> > From: "Kunal Rao" < kunalgrao at gmail.com > 
> > To: mpich-discuss at mcs.anl.gov 
> > Sent: Friday, October 1, 2010 5:01:38 PM GMT -06:00 US/Canada 
> Central 
> > Subject: [mpich-discuss] query on MPICH2 on Windows 
> > 
> > 
> > 
> > Hi 
> > 
> > 
> > Does MPICH2 on Microsoft Windows support MPI-IO ? 
> > 
> > 
> > I was checking on this site 
> > http://www.mcs.anl.gov/research/projects/romio/ where it says that 
> ROMIO 
> > is included as a part of MPICH 2. 
> > 
> > 
> > The reason I ask this is because I am trying to configure parallel 
> netcdf 
> > library on Windows through the cygwin environment. While doing 
> "configure" 
> > it stops with the following message: 
> > 
> > 
> > 
> > ---------------- 
> > 
> > 
> > checking MPI-IO support in MPI implementation... configure: error: 
> mpi 
> > implementation does not support MPI-IO 
> > 
> > 
> > --------------- 
> > 
> > 
> > The MPI implementation I used is MPICH2 which I was assuming 
> supported 
> > MPI-IO on Windows as well. I tried using MSMPI but even that stopped 
> with 
> > the same message. Any thoughts on this ? 
> > 
> > 
> > Thanks & Regards, 
> > Kunal 
> > 
> > 
> > 
> > 
> > _______________________________________________ 
> > mpich-discuss mailing list 
> > mpich-discuss at mcs.anl.gov 
> > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 
> > 
> > 
> > _______________________________________________ 
> > mpich-discuss mailing list 
> > mpich-discuss at mcs.anl.gov 
> > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 
> > 
> > 
> > 
> > _______________________________________________ 
> > mpich-discuss mailing list 
> > mpich-discuss at mcs.anl.gov 
> > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 
> > 
> 
> _______________________________________________ 
> mpich-discuss mailing list 
> mpich-discuss at mcs.anl.gov 
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 
_______________________________________________ 
mpich-discuss mailing list 
mpich-discuss at mcs.anl.gov 
https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 


_______________________________________________ 
mpich-discuss mailing list 
mpich-discuss at mcs.anl.gov 
https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 



More information about the mpich-discuss mailing list