2

I am a newbie who tries to compile a program via mpicc replacing icc with gcc. I have already discovered, that I need to use the following command to compile

$ OMPI_CC=gcc make

However, I get the following error message (which is well-known)

/opt/intel/fce/9.1.036/lib/libimf.so: warning: warning: feupdateenv is not implemented and will always fail

I try to do

$ make clean && OMPI_CC=gcc OMPI_LDFLAGS=-libm make

Then I see

/usr/bin/ld: cannot find -libm
collect2: ld returned 1 exit status

However, I find the file there

lrwxrwxrwx /usr/lib/libm.so -> /lib/libm.so.6
lrwxrwxrwx /lib/libm.so.6 -> libm-2.3.6.so
-rw-r--r-- /lib/libm-2.3.6.so
Community
  • 1
  • 1
Andrei
  • 10,918
  • 12
  • 76
  • 110

2 Answers2

0

Try:

$ make clean
$ OMPI_CC=gcc OMPI_LDFLAGS=-lm make
Bill Lynch
  • 80,138
  • 16
  • 128
  • 173
  • Nope, doesn't change anything. To be honest this error message is probably not so bad thing, since the program works fine (so far). I was just wondering how to solve this problem in case if it would do something bad. – Andrei Jul 29 '10 at 16:27
  • So you got the error cannot find -lm? That's weird. Also try OMPI_LIBS. – Bill Lynch Jul 29 '10 at 17:44
  • Nono, the original warning message about `feupdateenv` persists. I suppose `lm` has been found. – Andrei Jul 29 '10 at 19:48
0

Use the --showme flag to determine the flags used by mpicc/mpi compiler wrappers. Then invoke your own compiler of choice (icc/gcc/pgcc/whatever) and add the relevant flags so the correct MPI libraries are linked.

Remember, you need to use --showme with a file for the wrapper to show the correct flags.

More info is here: http://www.open-mpi.org/faq/?category=mpi-apps#wrapper-showme-with-no-file

powerrox
  • 1,334
  • 11
  • 21