Entry point not found in libmmd.dll

Entry point not found in libmmd.dll

Dear Dr. Fortran and community,

I am getting the following entry point not found error message: "The procedure entry point _libm_sse2_cbrt could not be located in the link library libmmd.dll." According to the forum this function computes the cubic root (^1/3) in a fast way.

This error is produced when the solution is compiled in Release mode. In Debug mode it works perfect. Note that for both compilation modes the libmmd.dll (or libmmdd.dll for debug) corresponds to the latest version 13.1.0.2. I have verified that the Windows path is pointing to %INTEL_DEV_REDIST%redist\ia32\compiler. Also when I add the /MDd for compiling in Release mode the error is not produced.

I have made a  screenshot using Dependency walker showing the differences between the libmmd (left) and libmmdd (right). Could some body suggest what could be the source of the problem? And a possible solution? Perhaps I have overlooked to some other points.

Thank you in advance, Javier

AttachmentSize
Downloadimage/png screenshoot.png394.83 KB
6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I see __libm_sse2_cbrt in my most recent installation of ia32\libmmd.dll, same as corresponding libmmdd.dll.  I don't have your version installed.

13.1.0.2 doesn't look like a latest version.

I don't see such a function in the intel64 installations which I normally use.

13.1.0.2 is the latest version of libmmd.dll. However, _libm_sse2_cbrt has been in libmmd.dll since Composer XE 2011, if not earlier. My guess is that there is an older version of libmmd.dll on PATH that is being seen first. What I don't see in the Dependency Walker screenshot is the path to LIBMMD being used.

The reason you don't see this referenced in a Debug build is that this routine is used as part of an optimization, which is disabled for debug builds.

Steve - Intel Developer Support

Thank you TimP and Steve for the reply. 

After several attemps, I have managed to by-pass the problem by selecting: 

Project properties > Fortran > Libraries > Runtime Library > Multithreaded

Before I was selecting the Multithread DLL (/libs:dll /threads) option. I am not sure why this solved the problem. I have noticed that the DLL that depends on Fortran increase its size from 203 to 1073 Kb. So, I suppose the missing entry points (functions) are now embeded in the DLL. Still it is a bit strange why is it not working under the Multithread DLL option. Note that there was no change in the system PATH or default library folder under VS2010.

One additional thing I did was to follow these steps to debug under release mode (MS suggested settings):

http://msdn.microsoft.com/en-us/library/fsk896zz.aspx

Thank you, Javier

Just a quick observation. The steps for debugging under release mode were applied to the C/C++ project using the Fortran DLL. Still these did not solved the problem when the Fortran DLL was built using the Multithreaded DLL option. 

Javier

What you did was switch from the DLL libraries to the static libraries. This is fine if your DLL is not going to be called from Fortran.

Steve - Intel Developer Support

Leave a Comment

Please sign in to add a comment. Not a member? Join today