[mpich-discuss] Linking problem

chan at mcs.anl.gov chan at mcs.anl.gov
Tue Oct 5 17:11:27 CDT 2010


A quick web search seems to indicate that there isn't a 64-bit cygwin
(hence cygwin's gcc can't accept -m64), but there seems to be 64-bit gcc
cross-compiler.  But using a cross-compiler to build mpich2 will involve
more works on your part (assuming parallel netcdf supports cross-compilation)
Given there are several unknowns, I would try building everything in 32bit to
see if everything works before attempting building 64-bit.

Is building your app in linux an option ?  If so, you could just either
use a linux liveCD, or install a linux partition, or even install a linux virtual
machine under windows.  That seems to be easier than messing with cygwin/cross-compiler.
Just a thought.

A.Chan

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

> Hi Anthony
> 
>   Thanks for your suggestion. I would like to do it the other way
> round.
> i.e. build library as well with 64-bit and link with
>   my 64-bit application. What do I need to do for that ? Install some
> other
> version of gcc for cygwin ? If yes, which version
>   and how do I do that ?
> 
> Thanks & Regards,
> Kunal
> 
> On Tue, Oct 5, 2010 at 5:41 PM, <chan at mcs.anl.gov> wrote:
> 
> >
> > ----- "Kunal Rao" <kunalgrao at gmail.com> wrote:
> >
> >
> > > configure:2218: checking for C compiler default output file name
> > > configure:2245: gcc -m64   conftest.c  >&5
> > > conftest.c:1: sorry, unimplemented: 64-bit mode not compiled in
> > > configure:2248: $? = 1
> >
> > > Also, just to confirm, cygwin should be able to build 64-bit
> library
> > > with gcc and gfortran, right ?
> >
> > It appears your cygwin gcc installation supports only 32-bit build.
> > Can you try building everything in 32-bit, including your fortran
> app.
> >
> > A.Chan
> >
> > >
> > > Thanks & Regards,
> > > Kunal
> > >
> > > On Tue, Oct 5, 2010 at 4:24 PM, Jayesh Krishna
> <jayesh at mcs.anl.gov>
> > > wrote:
> > >
> > > > 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
> > > >
> > > >
> > >
> > > _______________________________________________
> > > mpich-discuss mailing list
> > > mpich-discuss at mcs.anl.gov
> > > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
> >


More information about the parallel-netcdf mailing list