- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[bash]% make em64t name=foo_mkl
export LIBRARY_PATH=:; \
gcc -shared -Bdynamic \
-u dgemm_ -u ddot_ -u dgetrf_ \
-Wl,--start-group \
"/opt/intel/Compiler/11.1/064/mkl//lib/em64t/libmkl_intel_lp64.a" \
"/opt/intel/Compiler/11.1/064/mkl//lib/em64t/libmkl_intel_thread.a" \
"/opt/intel/Compiler/11.1/064/mkl//lib/em64t/libmkl_core.a" \
-Wl,--end-group \
-L"/opt/intel/Compiler/11.1/064/mkl//lib/em64t" -liomp5 -lm \
-o "foo_mkl.so"
/usr/bin/ld: cannot find -liomp5
collect2: ld returned 1 exit status
make: *** [em64t] Error 1
[/bash]
This patch fixes it for me:
[bash][garyo@smoke4-64 builder]$ diff -u makefile.~1~ makefile --- makefile.~1~ 2009-11-19 08:19:15.000000000 -0500 +++ makefile 2010-02-04 09:33:35.000000000 -0500 @@ -78,6 +78,9 @@ mklem64t_libpath=$(MKLROOT)/lib/em64t mkl64_libpath=$(MKLROOT)/lib/64 +iomp5_ia32_libpath=$(MKLROOT)/../lib/ia32 +iomp5_em64t_libpath=$(MKLROOT)/../lib/intel64 + ##------------------------------------------------------------------------------ ## No changes below this line ! ##------------------------------------------------------------------------------ @@ -136,7 +139,7 @@ "$(mkl32_libpath)/$(THREADING_LIB)" \ "$(mkl32_libpath)/$(CORE_LIB)" \ -Wl,--end-group \ - -L"$(mkl32_libpath)" $(OMP_LIB) $(LIBM) \ + -L"$(mkl32_libpath)" -L"$(iomp5_ia32_libpath)" $(OMP_LIB) $(LIBM) \ -o "$(name).so" em64t: @@ -148,7 +151,7 @@ "$(mklem64t_libpath)/$(THREADING_LIB)" \ "$(mklem64t_libpath)/$(CORE_LIB)" \ -Wl,--end-group \ - -L"$(mklem64t_libpath)" $(OMP_LIB) $(LIBM) \ + -L"$(mklem64t_libpath)" -L"$(iomp5_em64t_libpath)" $(OMP_LIB) $(LIBM) \ -o "$(name).so" ipf ia64: [/bash]
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The makefile seems to be missing a -L directive to find libiomp5. Any suggestions?
the best way to do that - to launch "iccvars.sh intel64" from../Compiler/11.1/064/bin folder.
The reason why libiomp has been stored into another place ( if we look at the stanalone version on MKL we can find libiom5* binaries into
So there are no sense to have several duplicates
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I wasn't suggesting duplicating it, that would make no sense (as you say). Just that the makefile should contain the correct path to wherever libiomp5.so is. Making users run a shell script just makes it harder to do a custom build. Anyway, I submitted a patch to the makefile, you can use it if you want.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page