[MPICH] Compiling a program (john-mpi MPICH2) under cygwin / WinXP - specify libs after source file
madfran
madfran at set-ezine.org
Sat Feb 23 06:01:47 CST 2008
ok.
You are true.
With your example and other as simple as "hello" it is possible compile and
run.
It is a problem with the "makefile" in a complex job (john the ripper).
I will try some changes.
On Thu, 21 Feb 2008 17:25:01 -0600, Jayesh Krishna wrote
> Hi,
> I think the problem that you are having is due to improper ordering
> of the compiler arguments. Please try compiling a simple MPI hello
> world program (given below) following the instructions below,
>
> 1) MPI program (Copy-paste the code below)
> ---------------
>
> #include <stdio.h>
> #include <mpi.h>
>
> int main(int argc, char *argv[]){
> int rank;
> MPI_Init(&argc, &argv);
> MPI_Comm_rank(MPI_COMM_WORLD, &rank);
> printf("[%d] Hello world\n", rank);
> MPI_Finalize();
> }
>
> 2) Compile using the following command (Copy-paste the command below),
>
> gcc -I/cygdrive/c/Progra~1/MPICH2/include -L/cygdrive/c/Progra~1/MPICH2/lib
> world.c -lmpi
>
> 3) Run your program using the following command (Cygwin gcc defaults
> the executable name to a.exe),
>
> mpiexec -n 2 -localroot a.exe
>
> 4) If the above steps work, you can modify the compilation of your program
> accordingly.
>
> Hope this helps...
>
> Regards,
> Jayesh
>
> -----Original Message-----
> From: madfran [mailto:madfran at set-ezine.org]
> Sent: Thursday, February 21, 2008 5:06 PM
> To: Jayesh Krishna
> Cc: mpich-discuss at mcs.anl.gov
> Subject: RE: [MPICH] Compiling a program (john-mpi MPICH2) under
> cygwin / WinXP - specify libs after source file
>
> I begin to think it is imposible :-(
>
> *********************************************************************
> ........................
> ........................
> gcc DES_bs_b.c -c -Wall -O3 -fomit-frame-pointer -
> I/cygdrive/c/Progra~1/MPICH2/include
> -L/cygdrive/c/Progra~1/MPICH2/lib - lmpicxx -lfmpich2 -lmpi -finline-
> functions gcc: -lmpicxx: linker input file unused because linking
> not done gcc: -lfmpich2: linker input file unused because linking
> not done gcc: -lmpi: linker input file unused because linking not
> done gcc x86.o x86-mmx.o md4-sse2.o NTmmx_fmt.o md5-mmx.o sha1-
> mmx.o DES_fmt.o DES_std.o DES_bs.o BSDI_fmt.o MD5_fmt.o MD5_std.o
> BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o des.o MD5_apache_fmt.o
> BFEgg_fmt.o lotus5_fmt.o md5.o NSLDAP_fmt.o NSLDAPS_fmt.o sha1.o
> base64.o MYSQL_fmt.o NT_fmt.o md4.o smbencrypt.o rawMD5_fmt.o
> rawSHA1_ fmt.o mssql_fmt.o hmacMD5_fmt.o WPAPSK_fmt.o mscash_fmt.o
> oracle_fmt.o batch.o bench.o charset.o common.o compiler.o config.o
> cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o
> list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o
> recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o
> unshadow.o ryan.o unafs.o undrop.o unique.o DES_bs_b.o -lkernel32 -o
> ../run/john.exe
> hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6c3): undefined reference to
> `_mdfivemmx_no sizeupdate'
> hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6db): undefined reference to
> `_mdfivemmx_no init_uniformsizeupdate'
> hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6ef): undefined reference to
> `_mdfivemmx_no sizeupdate'
> hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x703): undefined reference to
> `_mdfivemmx_no init_uniformsizeupdate'
> bench.o:bench.c:(.text+0x849): undefined reference to `_MPI_Reduce'
> bench.o:bench.c:(.text+0x91f): undefined reference to `_MPI_Reduce'
> bench.o:bench.c:(.text+0x9f2): undefined reference to `_MPI_Reduce'
> bench.o:bench.c:(.text+0xab0): undefined reference to `_MPI_Reduce'
> john.o:john.c:(.text+0x33): undefined reference to `_MPI_Init'
> john.o:john.c:(.text+0x43): undefined reference to `_MPI_Comm_rank'
> john.o:john.c:(.text+0x53): undefined reference to `_MPI_Comm_size'
> john.o:john.c:(.text+0x6e3): undefined reference to `_MPI_Finalize'
> john.o:john.c:(.text+0x721): undefined reference to `_MPI_Finalize'
> john.o:john.c:(.text+0x741): undefined reference to `_MPI_Finalize'
> john.o:john.c:(.text+0x8f1): undefined reference to `_MPI_Finalize'
> john.o:john.c:(.text+0xa92): undefined reference to `_MPI_Finalize'
> misc.o:misc.c:(.text+0x38): more undefined references to
> `_MPI_Finalize' follow collect2: ld returned 1 exit status make[1]:
> *** [../run/john.exe] Error 1 make[1]: Leaving directory `/tmp/john-
> mpi/john-1.7.2-bp17-mpi6/src' make: *** [win32-cygwin-x86-sse2]
> Error 2
>
> On Thu, 21 Feb 2008 12:51:30 -0600, Jayesh Krishna wrote
> > Hi,
> > Please specify the libraries after the source file.
> >
> > ========================================
> > gcc -Wall -O3 -fomit-frame-pointer
> > -I/cygdrive/c/Progra~1/MPICH2/include
> > -L/cygdrive/c/Progra~1/MPICH2/lib -funroll-loops NTmmx_fmt.c -lmpicxx
> > -lfmpich2 -lmpi
> > ========================================
> >
> > Regards,
> > Jayesh
> > -----Original Message-----
> > From: madfran [mailto:madfran at set-ezine.org]
> > Sent: Thursday, February 21, 2008 12:02 PM
> > To: Jayesh Krishna
> > Cc: mpich-discuss at mcs.anl.gov
> > Subject: RE: [MPICH] Compiling a program (john-mpi MPICH2) under
> > cygwin / WinXP - use -lmpicxx
> >
> > Hi,...
> >
> > Not luck :-(
> >
> > *****************************************************************
> > ................................................
> > gcc -c -Wall -O3 -fomit-frame-pointer
> > -I/cygdrive/c/Progra~1/MPICH2/include
> > - L/cygdrive/c/Progra~1/MPICH2/lib -lmpicxx -lfmpich2 -lmpi -funroll-
> > loops NTmmx_fmt.c NTmmx_fmt.c:63: warning: alignment of 'saved_plain'
> > is greater than maximum object file alignment. Using
> > 16 NTmmx_fmt.c:65: warning: alignment of 'output' is greater than
> > maximum object file alignment. Using 16
> > gcc: -lmpicxx: linker input file unused because linking not done
> > gcc: -lfmpich2: linker input file unused because linking not done
> > gcc: -lmpi: linker input file unused because linking not done gcc -c
> > -DUNDERSCORES md5-mmx.S gcc -c -DUNDERSCORES sha1-mmx.S gcc DES_fmt.o
> > DES_std.o DES_bs.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std. o
> > AFS_fmt.o LM_fmt.o des.o MD5_apache_fmt.o BFEgg_fmt.o lotus5_fmt.o
> > md5.o NSLDA P_fmt.o NSLDAPS_fmt.o sha1.o base64.o MYSQL_fmt.o NT_fmt.o
> > md4.o smbencrypt.o ra wMD5_fmt.o rawSHA1_fmt.o mssql_fmt.o
> > hmacMD5_fmt.o WPAPSK_fmt.o mscash_fmt.o ora cle_fmt.o batch.o bench.o
> > charset.o common.o compiler.o config.o cracker.o
> > crc32 .o external.o formats.o getopt.o idle.o inc.o john.o list.o
> > loader.o logger.o ma th.o memory.o misc.o options.o params.o path.o
> > recovery.o rpp.o rules.o signals. o single.o status.o tty.o wordlist.o
> > unshadow.o ryan.o unafs.o undrop.o unique.o DES_bs_b.o x86.o
> > x86-mmx.o md4-sse2.o NTmmx_fmt.o md5-mmx.o sha1-mmx.o - lkerne l32 -o
> > ../run/john.exe
> > hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6c3): undefined reference to
> > `_mdfivemmx_no sizeupdate' hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6db)
> > : undefined reference to `_mdfivemmx_no init_uniformsizeupdate'
> > hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6ef): undefined reference to
> > `_mdfivemmx_no sizeupdate' hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x703)
> > : undefined reference to `_mdfivemmx_no init_uniformsizeupdate'
> > bench.o:bench.c:(.text+0x849): undefined reference to `_MPI_Reduce'
> > bench.o:bench.c:(.text+0x91f): undefined reference to `_MPI_Reduce'
> > bench.o:bench.c:(.text+0x9f2): undefined reference to `_MPI_Reduce'
> > bench.o:bench.c:(.text+0xab0): undefined reference to `_MPI_Reduce'
> > john.o:john.c:(.text+0x33): undefined reference to `_MPI_Init'
> > john.o:john.c:(.text+0x43): undefined reference to `_MPI_Comm_rank'
> > john.o:john.c:(.text+0x53): undefined reference to `_MPI_Comm_size'
> > john.o:john.c:(.text+0x6e3): undefined reference to `_MPI_Finalize'
> > john.o:john.c:(.text+0x721): undefined reference to `_MPI_Finalize'
> > john.o:john.c:(.text+0x741): undefined reference to `_MPI_Finalize'
> > john.o:john.c:(.text+0x8f1): undefined reference to `_MPI_Finalize'
> > john.o:john.c:(.text+0xa92): undefined reference to `_MPI_Finalize'
> > misc.o:misc.c:(.text+0x38): more undefined references to
> > `_MPI_Finalize' follow collect2: ld returned 1 exit status make[1]:
> > *** [../run/john.exe] Error 1 make[1]: Leaving directory `/tmp/john-
> > mpi/john-1.7.2-bp17-mpi6/src' make: *** [win32-cygwin-x86-sse2] Error
> > 2
> >
> > On Wed, 20 Feb 2008 15:24:18 -0600, Jayesh Krishna wrote
> > > Hi,
> > > Try,
> > >
> > > gcc -c ... -lmpicxx -lfmpich2 -lmpi ...
> > >
> > > (Note: I used "-lmpicxx" instead of "-llibmpicxx" )
> > >
> > > Regards,
> > > Jayesh
> > >
> > > -----Original Message-----
> > > From: madfran [mailto:madfran at set-ezine.org]
> > > Sent: Wednesday, February 20, 2008 3:16 PM
> > > To: Jayesh Krishna
> > > Cc: mpich-discuss at mcs.anl.gov
> > > Subject: RE: [MPICH] Compiling a program (john-mpi MPICH2) under
> > > cygwin / WinXP - use libmpicxx.a
> > >
> > > Hi,...
> > >
> > > The problem is not solved.
> > >
> > > ***************************
> > > .............
> > > gcc -c -Wall -O3 -fomit-frame-pointer
> > > -I/cygdrive/c/Progra~1/MPICH2/include
> > > - L/cygdrive/c/Progra~1/MPICH2/lib -llibmpicxx -lmpi -lfmpich2
> > > -funroll-loops NTmmx _fmt.c
> > > NTmmx_fmt.c:63: warning: alignment of 'saved_plain' is greater than
> > > maximum object file alignment. Using 16
> > > NTmmx_fmt.c:65: warning: alignment of 'output' is greater than
> > > maximum object file alignment. Using 16 gcc: -llibmpicxx: linker
> > > input file unused because linking not done gcc: -lmpi: linker input
> > > file unused because linking not done gcc: -lfmpich2: linker input
> > > file unused because linking not done ...........
> > > bench.o:bench.c:(.text+0x849): undefined reference to
> > `_MPI_Reduce' ...........
> > > **************************
> > >
> > > On Tue, 19 Feb 2008 16:39:52 -0600, Jayesh Krishna wrote
> > > > Hi,
> > > > If you want to compile MPI programs written in C++ from cygwin
> > > > use the libmpicxx.a library (not cxx.lib) in MPICH2\lib.
> > > >
> > > > Regards,
> > > > Jayesh
> > > >
> > > > -----Original Message-----
> > > > From: owner-mpich-discuss at mcs.anl.gov
> > > > [mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of madfran
> > > > Sent: Tuesday, February 19, 2008 4:09 PM
> > > > To: mpich-discuss at mcs.anl.gov
> > > > Subject: [MPICH] Compiling a program (john-mpi MPICH2) under
> > > > cygwin / WinXP
> > > >
> > > > Hi,...
> > > >
> > > > Trying to build a program under cygwin / WinXP I had received
> > > > these messages.
> > > > MPICH2 is installed only under WinXP.
> > > >
> > > > Any idea?
> > > >
> > > > ************************************************************
> > > > .....
> > > > gcc -c -Wall -O3 -fomit-frame-pointer
> > > > -I/cygdrive/c/Progra~1/MPICH2/include
> > > > - L/c
> > > > ygdrive/c/Progra~1/MPICH2/lib -lcxx.lib -lmpi -lfmpich2 -funroll-
> > > > loops NTmmx_f mt.c NTmmx_fmt.c:63: warning: alignment of
> > > > 'saved_plain' is greater than maximum obje ct file alignment.
> > > > Using
> > > > 16 NTmmx_fmt.c:65: warning: alignment of 'output' is greater than
> > > > maximum object fi le alignment. Using 16
> > > > gcc: -lcxx.lib: linker input file unused because linking not done
> > > > gcc: -lmpi: linker input file unused because linking not done
> > > > gcc: -lfmpich2: linker input file unused because linking not done
> > > > gcc -c -DUNDERSCORES md5-mmx.S gcc -c -DUNDERSCORES sha1-mmx.S
> > > > gcc
> > > DES_fmt.o
> > > > DES_std.o DES_bs.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.
> > > > o AFS_fmt.o LM_fmt.o des.o MD5_apache_fmt.o BFEgg_fmt.o
> > > > lotus5_fmt.o md5.o NSLDA P_fmt.o NSLDAPS_fmt.o sha1.o base64.o
> > > > MYSQL_fmt.o NT_fmt.o md4.o smbencrypt.o ra wMD5_fmt.o
> > > > rawSHA1_fmt.o mssql_fmt.o
> > > hmacMD5_fmt.o
> > > > WPAPSK_fmt.o mscash_fmt.o ora cle_fmt.o batch.o bench.o charset.o
> > > > common.o compiler.o config.o cracker.o
> > > > crc32
> > > > .o external.o formats.o getopt.o idle.o inc.o john.o list.o
> > > > loader.o logger.o ma th.o memory.o misc.o options.o params.o
> > > > path.o recovery.o rpp.o rules.o signals. o single.o status.o tty.o
> > > > wordlist.o unshadow.o ryan.o unafs.o undrop.o unique.o DES_bs_b.o
> > > > x86.o x86-mmx.o md4-sse2.o NTmmx_fmt.o md5-mmx.o sha1-mmx.o -
> > > > lkerne
> > > > l32 -o ../run/john.exe
> > > > hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6c3): undefined reference to
> > > > `_mdfivemmx_no sizeupdate'
> > > > hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6db)
> > > > : undefined reference to `_mdfivemmx_no init_uniformsizeupdate'
> > > > hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x6ef): undefined reference to
> > > > `_mdfivemmx_no sizeupdate'
> > > > hmacMD5_fmt.o:hmacMD5_fmt.c:(.text+0x703)
> > > > : undefined reference to `_mdfivemmx_no init_uniformsizeupdate'
> > > > bench.o:bench.c:(.text+0x849): undefined reference to `_MPI_Reduce'
> > > > bench.o:bench.c:(.text+0x91f): undefined reference to `_MPI_Reduce'
> > > > bench.o:bench.c:(.text+0x9f2): undefined reference to `_MPI_Reduce'
> > > > bench.o:bench.c:(.text+0xab0): undefined reference to `_MPI_Reduce'
> > > > john.o:john.c:(.text+0x33): undefined reference to `_MPI_Init'
> > > > john.o:john.c:(.text+0x43): undefined reference to `_MPI_Comm_rank'
> > > > john.o:john.c:(.text+0x53): undefined reference to `_MPI_Comm_size'
> > > > john.o:john.c:(.text+0x6e3): undefined reference to `_MPI_Finalize'
> > > > john.o:john.c:(.text+0x721): undefined reference to `_MPI_Finalize'
> > > > john.o:john.c:(.text+0x741): undefined reference to `_MPI_Finalize'
> > > > john.o:john.c:(.text+0x8f1): undefined reference to `_MPI_Finalize'
> > > > john.o:john.c:(.text+0xa92): undefined reference to `_MPI_Finalize'
> > > > misc.o:misc.c:(.text+0x38): more undefined references to
> > > > `_MPI_Finalize' follow collect2: ld returned 1 exit status make[1]:
> > > > *** [../run/john.exe] Error 1 make[1]: Leaving directory
> > > > `/tmp/john- mpi/john-1.7.2-bp17-mpi6/src' make: ***
> > > > [win32-cygwin-x86-sse2] Error
> > > > 2
More information about the mpich-discuss
mailing list