[OMPI users] OpenMPI on OS X - file is not of required architecture
I've built openmpi version 1.3.3 on a MacPro with OS X 10.5.8 and the Intel 10.1.006 Fortran compiler and gcc 4.0. As far as I can tell, the configure and make commands completed fine. There are some warnings, but it's not clear to me that they are critical - or the explanation for what's not working. After installing, I try to compile a simple F77 hello world code. The output is:% mpif77 helloworld_mpi.f -o helloworld_mpild: warning in /opt/openmpi/lib/libmpi_f77.a, file is not of required architectureUndefined symbols: "_mpi_init_", referenced from: _MAIN__ in ifortIsUNoZ.o "_mpi_comm_size_", referenced from: _MAIN__ in ifortIsUNoZ.o "_mpi_finalize_", referenced from: _MAIN__ in ifortIsUNoZ.o "_mpi_comm_rank_", referenced from: _MAIN__ in ifortIsUNoZ.old: symbol(s) not foundI don't know what the warning about the "required architecture" means and cannot find any relevant info in the archives or with google. I'd appreciate any help. More info is below, including the config.log file as an attachment. Here's my configure command:./configure --prefix=/opt/openmpi --enable-static --disable-shared CC=gcc CFLAGS=-m64 CXX=g++ CXXFLAGS=-m64 F77=ifort FC=ifort FFLAGS=-assume nounderscore FCFLAGS=-assume nounderscoreThe output of the ompi_info --all command is also attached. Thanks,Andreas config.log.gz Description: GNU Zip compressed data open_info_all.out.gz Description: GNU Zip compressed data
Re: [OMPI users] OpenMPI on OS X - file is not of required architecture
On Fri, Sep 11, 2009 at 5:10 PM, Jeff Squyres wrote: > On Sep 11, 2009, at 10:05 AM, Andreas Haselbacher wrote: > > I've built openmpi version 1.3.3 on a MacPro with OS X 10.5.8 and the >> Intel 10.1.006 Fortran compiler and gcc 4.0. As far as I can tell, the >> configure and make commands completed fine. There are some warnings, but >> it's not clear to me that they are critical - or the explanation for what's >> not working. After installing, I try to compile a simple F77 hello world >> code. The output is: >> >> % mpif77 helloworld_mpi.f -o helloworld_mpi >> ld: warning in /opt/openmpi/lib/libmpi_f77.a, file is not of required >> architecture >> > > This means that it skipped that library because it didn't match what you > were trying to compile against. > > Can you send the output of mpif77 --showme? > ifort -I/opt/openmpi/include -L/opt/openmpi/lib -lmpi_f77 -lmpi -lopen-rte -lopen-pal -lutil > > Undefined symbols: >> "_mpi_init_", referenced from: >> _MAIN__ in ifortIsUNoZ.o >> > > None of these symbols were found because libmpi_f77.a was skipped. > Right. > > Here's my configure command: >> >> ./configure --prefix=/opt/openmpi --enable-static --disable-shared CC=gcc >> CFLAGS=-m64 CXX=g++ CXXFLAGS=-m64 F77=ifort FC=ifort FFLAGS=-assume >> nounderscore FCFLAGS=-assume nounderscore >> > > I do not have the intel compilers for Mac; do they default to producing 64 > bit objects? I ask because it looks like you forced the C and C++ compilers > to produce 64 bit objects -- do you need to do the same with ifort? (via > the FCFLAGS and FFLAGS env variables) > If I remember correctly, I had to add those flags, otherwise configure claimed that the compilers were not compatible. I can rerun configure if you suspect that this is an issue. I did not add these flags to the Fortran variables because configure did not complain further, but I can see that this might be an issue. > > Also, did you quote the "-assume nounderscore" arguments to FFLAGS/FCFLAGS? > I.e., something like this: > >"FFLAGS=-assume nounderscore" > > Yes, I did. Andreas > -- > Jeff Squyres > jsquy...@cisco.com > >
Re: [OMPI users] OpenMPI on OS X - file is not of required architecture
On Fri, Sep 11, 2009 at 6:35 PM, Doug Reeder wrote: > Andreas, > Have you checked that ifort is creating 64 bit objects. If I remember > correctly with 10.1 the default was to create 32 bit objects. > > I have not done so yet. I was under the impression that it was building 32-bit initially. Then when I ran configure without the -m64 option to CFLAGS and CXXFLAGS, I would get the following message: *** Fortran 77 compiler checking whether we are using the GNU Fortran 77 compiler... no checking whether ifort accepts -g... yes checking if Fortran 77 compiler works... yes checking ifort external symbol convention... no underscore checking if C and Fortran 77 are link compatible... no ** It appears that your Fortran 77 compiler is unable to link against object files created by your C compiler. This typically indicates one of a few possibilities: - A conflict between CFLAGS and FFLAGS - A problem with your compiler installation(s) - Different default build options between compilers (e.g., C building for 32 bit and Fortran building for 64 bit) - Incompatible compilers Such problems can usually be solved by picking compatible compilers and/or CFLAGS and FFLAGS. More information (including exactly what command was given to the compilers and what error resulted when the commands were executed) is available in the config.log file in this directory. ** So I (naively) figured that it had to build 64-bit, added the flags, and ran configure successfully (or so I thought). I tried running ifort -V (as suggested by Warner Yuen in a follow-up email), but I just discovered that maybe something's messed up with my path since I get different results from an xterm and the Terminal. I will need to figure out what's going on here first... Thanks, Andreas > Doug Reeder > On Sep 11, 2009, at 3:25 PM, Andreas Haselbacher wrote: > > On Fri, Sep 11, 2009 at 5:10 PM, Jeff Squyres wrote: > >> On Sep 11, 2009, at 10:05 AM, Andreas Haselbacher wrote: >> >> I've built openmpi version 1.3.3 on a MacPro with OS X 10.5.8 and the >>> Intel 10.1.006 Fortran compiler and gcc 4.0. As far as I can tell, the >>> configure and make commands completed fine. There are some warnings, but >>> it's not clear to me that they are critical - or the explanation for what's >>> not working. After installing, I try to compile a simple F77 hello world >>> code. The output is: >>> >>> % mpif77 helloworld_mpi.f -o helloworld_mpi >>> ld: warning in /opt/openmpi/lib/libmpi_f77.a, file is not of required >>> architecture >>> >> >> This means that it skipped that library because it didn't match what you >> were trying to compile against. >> >> Can you send the output of mpif77 --showme? >> > > ifort -I/opt/openmpi/include -L/opt/openmpi/lib -lmpi_f77 -lmpi -lopen-rte > -lopen-pal -lutil > > >> >> Undefined symbols: >>> "_mpi_init_", referenced from: >>> _MAIN__ in ifortIsUNoZ.o >>> >> >> None of these symbols were found because libmpi_f77.a was skipped. >> > > Right. > > >> >> Here's my configure command: >>> >>> ./configure --prefix=/opt/openmpi --enable-static --disable-shared CC=gcc >>> CFLAGS=-m64 CXX=g++ CXXFLAGS=-m64 F77=ifort FC=ifort FFLAGS=-assume >>> nounderscore FCFLAGS=-assume nounderscore >>> >> >> I do not have the intel compilers for Mac; do they default to producing 64 >> bit objects? I ask because it looks like you forced the C and C++ compilers >> to produce 64 bit objects -- do you need to do the same with ifort? (via >> the FCFLAGS and FFLAGS env variables) >> > > If I remember correctly, I had to add those flags, otherwise configure > claimed that the compilers were not compatible. I can rerun configure if you > suspect that this is an issue. I did not add these flags to the Fortran > variables because configure did not complain further, but I can see that > this might be an issue. > > >> >> Also, did you quote the "-assume nounderscore" arguments to >> FFLAGS/FCFLAGS? I.e., something like this: >> >>"FFLAGS=-assume nounderscore" >> >> > Yes, I did. > > Andreas > > >> -- >> Jeff Squyres >> jsquy...@cisco.com >> >> > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >
Re: [OMPI users] OpenMPI on OS X - file is not of required architecture
I made a silly mistake, so I'm sorry for wasting your time. I installed ifort and set the paths, but when I logged in as root, it was using the old ifort compiler. Therefore, once I tried to run mpif90 from my account, it of course did not match what was compiled after configure... Andreas On Fri, Sep 11, 2009 at 6:35 PM, Doug Reeder wrote: > Andreas, > Have you checked that ifort is creating 64 bit objects. If I remember > correctly with 10.1 the default was to create 32 bit objects. > > Doug Reeder > On Sep 11, 2009, at 3:25 PM, Andreas Haselbacher wrote: > > On Fri, Sep 11, 2009 at 5:10 PM, Jeff Squyres wrote: > >> On Sep 11, 2009, at 10:05 AM, Andreas Haselbacher wrote: >> >> I've built openmpi version 1.3.3 on a MacPro with OS X 10.5.8 and the >>> Intel 10.1.006 Fortran compiler and gcc 4.0. As far as I can tell, the >>> configure and make commands completed fine. There are some warnings, but >>> it's not clear to me that they are critical - or the explanation for what's >>> not working. After installing, I try to compile a simple F77 hello world >>> code. The output is: >>> >>> % mpif77 helloworld_mpi.f -o helloworld_mpi >>> ld: warning in /opt/openmpi/lib/libmpi_f77.a, file is not of required >>> architecture >>> >> >> This means that it skipped that library because it didn't match what you >> were trying to compile against. >> >> Can you send the output of mpif77 --showme? >> > > ifort -I/opt/openmpi/include -L/opt/openmpi/lib -lmpi_f77 -lmpi -lopen-rte > -lopen-pal -lutil > > >> >> Undefined symbols: >>> "_mpi_init_", referenced from: >>> _MAIN__ in ifortIsUNoZ.o >>> >> >> None of these symbols were found because libmpi_f77.a was skipped. >> > > Right. > > >> >> Here's my configure command: >>> >>> ./configure --prefix=/opt/openmpi --enable-static --disable-shared CC=gcc >>> CFLAGS=-m64 CXX=g++ CXXFLAGS=-m64 F77=ifort FC=ifort FFLAGS=-assume >>> nounderscore FCFLAGS=-assume nounderscore >>> >> >> I do not have the intel compilers for Mac; do they default to producing 64 >> bit objects? I ask because it looks like you forced the C and C++ compilers >> to produce 64 bit objects -- do you need to do the same with ifort? (via >> the FCFLAGS and FFLAGS env variables) >> > > If I remember correctly, I had to add those flags, otherwise configure > claimed that the compilers were not compatible. I can rerun configure if you > suspect that this is an issue. I did not add these flags to the Fortran > variables because configure did not complain further, but I can see that > this might be an issue. > > >> >> Also, did you quote the "-assume nounderscore" arguments to >> FFLAGS/FCFLAGS? I.e., something like this: >> >>"FFLAGS=-assume nounderscore" >> >> > Yes, I did. > > Andreas > > >> -- >> Jeff Squyres >> jsquy...@cisco.com >> >> > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > > ___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >