MKL with legacy app (Visual Studio 6)

MKL with legacy app (Visual Studio 6)

Hi

I have a legacy app written in C++ with Visual Studio 6. It uses an older version of the MKL library.

The app is currently getting memory allocation errors from the MKL code when using FFT and IFFT (error code 1) (The input and output buffers are set to be the same to reduce the memory footprint). The data is around 344 MB. The app has other demands on memory.

I was hoping to test a newer version of the MKL to see whether it would work with this dataset.

Unfortunately, the new MKL library (the Release 11 Update 5), produces a load of linker errors (I'm linking against mkl_intel_c, mkl_sequential and mkl_core.

mkl_core.lib(psdftsfactca_w7---ownscDftOutOrdInv_Prime13_32fc_20121126.obj) : error LNK2001: unresolved external symbol ___security_cookie

This is with Visual studio 6.0 so there's no /GS switch or BufferOverflowU.lib

12 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Noah Clemons (Intel)'s picture

Hi, have you tried the MKL Link Line Advisor?

http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor

This resource should help you alleviate any of those link errors you are getting. I would advise using the newest MKL library which would contain the memory fixes. 

Yeah I tried that. Didn't work, still produced the same linker errors. Googling suggests that the intel libraries have been built with buffer overflow checks enabled. VS 6 doesn't support that (/GS switch).

Hello, 

We had similiar issue in IPP. please see  

http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-for-windows-lnk2001-error-unresolved-external-symbol-_security_cookie

So you may try link dll  mkl_*_dll.lib and see if it can work.   Or try to build your project under release mode.

Anyway, you should have known that MKL don't support VS 6.0 for a long time, so a suggest may be if possible, upgrade the VS :).

Best Regars,

Ying.

Thanks, that worked a treat!

Unfortunately, the app will requre a vast amount of changes to build on newer VS.

>>...Unfortunately, the new MKL library (the Release 11 Update 5), produces a load of linker errors (I'm linking against mkl_intel_c,
>>mkl_sequential and mkl_core.
>>
>>mkl_core.lib(psdftsfactca_w7---ownscDftOutOrdInv_Prime13_32fc_20121126.obj) : error LNK2001: unresolved external
>>symbol ___security_cookie

Please search on Microsoft website for more technical details regardning linker error. I remember that Microsoft released some additional object module in order to fix similar linking problems. However, I'm Not sure that the problem could be solved when legacy versions of Microsoft compilers are used.

If you upload a complete test case ( let's say as smaller as possible ) I could look at it since I have VS6 SP5.

Hi

This is resolved. I can get it to work in release mode (without debugging info.) with the bufferoverflowu.lib library.

One more question: Do you use SP5 or SP6 with VS6?

CL.EXE has version 6.00.8804.0m which I think means SP4.

This is a customer's machine, I'm not entirely sure. I was under the impression this was SP6, but I gues not.

>>...CL.EXE has version 6.00.8804.0m which I think means SP4.

I have SP5 and Processor Pack ( Intel MMX & SSE support ) installed and here are version numbers for CL.EXE:

File Version: 12.00.8804.0
Product Version: 6.00.8804.0

If I execute CL.EXE it shows:
...
C:\VS1998\VC98\Bin>CL.EXE
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
...

Ok then I have service pack 5 I guess. Thanks for your help, but the app is being migrated to VS2008.

Login to leave a comment.