RE: [boost] Re: Regression results for Intel 8 online

Stefan thanks for you work and the reply On Wednesday 21 July 2004 10:15, "Stefan Slapeta" <stefan@slapeta.com> wrote:
Did you see the __declspec(dllimport)? Should this be ok?
test21.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::complex<float>::complex<float>(class std::complex<float> const &)" etc.
test21.obj : error LNK2019: unresolved external symbol
I saw it but don't really know what to make of it! Essentially uBLAS just makes use of the system <complex> header. How this result in an unresolved symbol I don't know. My wild guess the they are normally for it the compiler runtime, and something has gone haywire!
"C:\Programme\Intel\CPP\Compiler80\Ia32\bin\icl" /Zm800 -nologo -GX -c -DBOOST_UBLAS_USE_INTERVAL /Z7 /Od /Ob0 /GX /GR /MDd /Op /Zc:forScope /Zc:wchar_t /Qwn5 /Qwd985 -Qoption,c,--arg_dep_lookup /Qansi_alias -D_NATIVE_WCHAR_T_DEFINED /Qvc7.1
I am really guessing here as I don't have manuals! The /Z7 and /Qv7.1 look interesting. I think the /Z7 is specifying old style debug symbols which is a bit odd. I guess they are usually smaller then the "edit and continue" symbols. /Qv7.1 I assume is enabling VC 7.1 compatibility bugs and all. I guess this adds a few extra bugs of Intels own. I not sure why the default build options for boost have this in. Anyone know? Do you think it would be appropriate to do the regression testing in the compilers native mode? Thanks, Michael

-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Michael Stevens
Did you see the __declspec(dllimport)? Should this be ok?
test21.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::complex<float>::complex<float>(class std::complex<float> const &)" etc.
test21.obj : error LNK2019: unresolved external symbol
I've found the reason for this: /MDd This is for the runtime and means "Multithreaded Debug DLL". If you just use "Multithreaded Debug" (/MTd), everything works fine! Can anybody tell me the intention behind testing uBLAS with the shared runtime? (Maybe this is the default because some other libraries need it...) Anyway, it seems to be a bug of the Intel Compiler but I have not been able to reproduce this in a simple test case. The responsible lines are: t = ublas::blas_1::dot (v1, v2); t = ublas::blas_1::dot (ublas::conj (v1), v2); Intel seems to get confused with the return type of inner_prod.
"C:\Programme\Intel\CPP\Compiler80\Ia32\bin\icl" /Zm800 -nologo -GX -c -DBOOST_UBLAS_USE_INTERVAL /Z7 /Od /Ob0 /GX /GR /MDd /Op /Zc:forScope /Zc:wchar_t /Qwn5 /Qwd985 -Qoption,c,--arg_dep_lookup /Qansi_alias -D_NATIVE_WCHAR_T_DEFINED /Qvc7.1
I am really guessing here as I don't have manuals! The /Z7 and /Qv7.1 look interesting. I think the /Z7 is specifying old style debug symbols which is a bit odd. I guess they are usually smaller then the "edit and continue" symbols.
/Z7 ... Produce symbolic debug information in object file (=C7 format) /Qv7.1 ... Enables compatibility with Visual C++ .NET* 2003
/Qv7.1 I assume is enabling VC 7.1 compatibility bugs and all. I guess this adds a few extra bugs of Intels own. I not sure why the default build options for boost have this in. Anyone know? Do you think it would be appropriate to do the regression testing in the compilers native mode?
I think this is no good idea. Intel always hat set /Qv7.1 after the installation as default. And, building Test7 fails with the same error also without this option. BTW, you can't build test7 (I didn't try the others) on any compiler if you don't set DBOOST_UBLAS_USE_INTERVAL. Is this intended? Stefan
participants (2)
-
Michael Stevens
-
Stefan Slapeta