2016-07-28 15:03 GMT+03:00 Ben Boeckel <ben.boec...@kitware.com>: > On Thu, Jul 28, 2016 at 13:33:35 +0300, Sergei Nikulov wrote: >> -- Looking for CertFreeCertificateContext in crypt32; >> -- Looking for CertFreeCertificateContext in crypt32; - found >> crypt32 found > > These are tested using try_compile. Is there anything interesting under > CMakeFiles/CMakeTmp/* when you configure with --debug-trycompile? It > should contain the example files used and output from the compiler. >
Ben, Could you please provide me with information what should be interesting for me exactly? Here is my investigate 32-bit build CL.command.1.tlog ------------------------------------------------------------- ^C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.6\MODULES\CHECKFUNCTIONEXISTS.C /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=CertFreeCertificateContext /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"CMTC_67614.DIR\DEBUG\\" /Fd"CMTC_67614.DIR\DEBUG\VC140.PDB" /Gd /TC /analyze- C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.6\MODULES\CHECKFUNCTIONEXISTS.C ------------------------------------------------------------- link.command.1.tlog is empty Dumpbin output ------------------------------------------------------------- E:\WORK\github\cmake_issue_checklibraryexist\build.32\CMakeFiles\CMakeTmp\cmTC_6 7614.dir\Debug>dumpbin /SYMBOLS CheckFunctionExists.obj Microsoft (R) COFF/PE Dumper Version 14.00.24210.0 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file CheckFunctionExists.obj File Type: COFF OBJECT COFF SYMBOL TABLE 000 01045E92 ABS notype Static | @comp.id 001 80000191 ABS notype Static | @feat.00 002 00000000 SECT1 notype Static | .drectve Section length 30, #relocs 0, #linenums 0, checksum 0 004 00000000 SECT2 notype Static | .debug$S Section length 270, #relocs 5, #linenums 0, checksum 0 006 00000000 SECT3 notype Static | .debug$T Section length 88, #relocs 0, #linenums 0, checksum 0 008 00000000 SECT4 notype Static | .text$mn Section length 2F, #relocs 2, #linenums 0, checksum ED2BC9DE 00A 00000000 UNDEF notype () External | _CertFreeCertificateContext 00B 00000000 SECT4 notype () External | _main 00C 00000000 UNDEF notype () External | __RTC_CheckEsp 00D 00000000 UNDEF notype () External | __RTC_InitBase 00E 00000000 UNDEF notype () External | __RTC_Shutdown 00F 00000000 SECT5 notype Static | .rtc$IMZ Section length 4, #relocs 1, #linenums 0, checksum 0, select ion 2 (pick any) 011 00000000 SECT5 notype Static | __RTC_InitBase.rtc$IMZ 012 00000000 SECT6 notype Static | .rtc$TMZ Section length 4, #relocs 1, #linenums 0, checksum 0, select ion 2 (pick any) 014 00000000 SECT6 notype Static | __RTC_Shutdown.rtc$TMZ String Table Size = 0x7B bytes Summary 270 .debug$S 88 .debug$T 30 .drectve 4 .rtc$IMZ 4 .rtc$TMZ 2F .text$mn E:\WORK\github\cmake_issue_checklibraryexist\build.32\CMakeFiles\CMakeTmp\cmTC_6 7614.dir\Debug> 64-bit build CL.command.1.tlog ------------------------------------------------------------- ^C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.6\MODULES\CHECKFUNCTIONEXISTS.C /c /Zi /W3 /WX- /Od /Ob0 /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=CertFreeCertificateContext /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"CMTC_7909E.DIR\DEBUG\\" /Fd"CMTC_7909E.DIR\DEBUG\VC140.PDB" /Gd /TC C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.6\MODULES\CHECKFUNCTIONEXISTS.C ------------------------------------------------------------- link.command.1.tlog ------------------------------------------------------------- ^E:\WORK\GITHUB\CMAKE_ISSUE_CHECKLIBRARYEXIST\BUILD.64\CMAKEFILES\CMAKETMP\CMTC_7909E.DIR\DEBUG\CHECKFUNCTIONEXISTS.OBJ /OUT:"E:\WORK\GITHUB\CMAKE_ISSUE_CHECKLIBRARYEXIST\BUILD.64\CMAKEFILES\CMAKETMP\DEBUG\CMTC_7909E.EXE" /INCREMENTAL /NOLOGO KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB COMDLG32.LIB ADVAPI32.LIB CRYPT32.LIB /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:/WORK/GITHUB/CMAKE_ISSUE_CHECKLIBRARYEXIST/BUILD.64/CMAKEFILES/CMAKETMP/DEBUG/CMTC_7909E.PDB" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"E:/WORK/GITHUB/CMAKE_ISSUE_CHECKLIBRARYEXIST/BUILD.64/CMAKEFILES/CMAKETMP/DEBUG/CMTC_7909E.LIB" /MACHINE:X64 /machine:x64 CMTC_7909E.DIR\DEBUG\CHECKFUNCTIONEXISTS.OBJ ------------------------------------------------------------- Dumpbin output ------------------------------------------------------------- E:\WORK\github\cmake_issue_checklibraryexist\build.64\CMakeFiles\CMakeTmp\cmTC_7 909e.dir\Debug>dumpbin /SYMBOLS CheckFunctionExists.obj Microsoft (R) COFF/PE Dumper Version 14.00.24210.0 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file CheckFunctionExists.obj File Type: COFF OBJECT COFF SYMBOL TABLE 000 01045E92 ABS notype Static | @comp.id 001 80000190 ABS notype Static | @feat.00 002 00000000 SECT1 notype Static | .drectve Section length 30, #relocs 0, #linenums 0, checksum 0 004 00000000 SECT2 notype Static | .debug$S Section length 210, #relocs 4, #linenums 0, checksum 0 006 00000000 SECT3 notype Static | .debug$T Section length 88, #relocs 0, #linenums 0, checksum 0 008 00000000 SECT4 notype Static | .text$mn Section length 4F, #relocs 1, #linenums 0, checksum DF4B9C22 00A 00000000 UNDEF notype () External | CertFreeCertificateContext 00B 00000000 SECT4 notype () External | main 00C 00000000 UNDEF notype () External | _RTC_InitBase 00D 00000000 UNDEF notype () External | _RTC_Shutdown 00E 00000000 SECT4 notype Label | $LN4 00F 00000000 SECT5 notype Static | .xdata Section length 8, #relocs 0, #linenums 0, checksum 85724CC6 011 00000000 SECT5 notype Static | $unwind$main 012 00000000 SECT6 notype Static | .pdata Section length C, #relocs 3, #linenums 0, checksum F0BDD041 014 00000000 SECT6 notype Static | $pdata$main 015 00000000 SECT7 notype Static | .rtc$IMZ Section length 8, #relocs 1, #linenums 0, checksum 0, select ion 2 (pick any) 017 00000000 SECT7 notype Static | _RTC_InitBase.rtc$IMZ 018 00000000 SECT8 notype Static | .rtc$TMZ Section length 8, #relocs 1, #linenums 0, checksum 0, select ion 2 (pick any) 01A 00000000 SECT8 notype Static | _RTC_Shutdown.rtc$TMZ String Table Size = 0x80 bytes Summary 210 .debug$S 88 .debug$T 30 .drectve C .pdata 8 .rtc$IMZ 8 .rtc$TMZ 4F .text$mn 8 .xdata E:\WORK\github\cmake_issue_checklibraryexist\build.64\CMakeFiles\CMakeTmp\cmTC_7 909e.dir\Debug> As I can see the difference is C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=CertFreeCertificateContext /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_67614.dir\Debug\\" /Fd"cmTC_67614.dir\Debug\vc140.pdb" /Gd /TC /analyze- /errorReport:queue "C:\Program Files\CMake\share\cmake-3.6\Modules\CheckFunctionExists.c" Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24210 for x86 Copyright (C) Microsoft Corporation. All rights reserved. cl /c /Zi /W3 /WX- /Od /Ob0 /Oy- /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=CertFreeCertificateContext /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_67614.dir\Debug\\" /Fd"cmTC_67614.dir\Debug\vc140.pdb" /Gd /TC /analyze- /errorReport:queue "C:\Program Files\CMake\share\cmake-3.6\Modules\CheckFunctionExists.c" CheckFunctionExists.c Link: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe /ERRORREPORT:QUEUE /OUT:"E:\WORK\github\cmake_issue_checklibraryexist\build.32\CMakeFiles\CMakeTmp\Debug\cmTC_67614.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib crypt32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:/WORK/github/cmake_issue_checklibraryexist/build.32/CMakeFiles/CMakeTmp/Debug/cmTC_67614.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"E:/WORK/github/cmake_issue_checklibraryexist/build.32/CMakeFiles/CMakeTmp/Debug/cmTC_67614.lib" /MACHINE:X86 /SAFESEH /machine:X86 cmTC_67614.dir\Debug\CheckFunctionExists.obj CheckFunctionExists.obj : error LNK2019: unresolved external symbol _CertFreeCertificateContext referenced in function _main [E:\WORK\github\cmake_issue_checklibraryexist\build.32\CMakeFiles\CMakeTmp\cmTC_67614.vcxproj] E:\WORK\github\cmake_issue_checklibraryexist\build.32\CMakeFiles\CMakeTmp\Debug\cmTC_67614.exe : fatal error LNK1120: 1 unresolved externals [E:\WORK\github\cmake_issue_checklibraryexist\build.32\CMakeFiles\CMakeTmp\cmTC_67614.vcxproj] 00A 00000000 UNDEF notype () External | _CertFreeCertificateContext for 32-bit vs ClCompile: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\CL.exe /c /Zi /W3 /WX- /Od /Ob0 /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=CertFreeCertificateContext /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_7909e.dir\Debug\\" /Fd"cmTC_7909e.dir\Debug\vc140.pdb" /Gd /TC /errorReport:queue "C:\Program Files\CMake\share\cmake-3.6\Modules\CheckFunctionExists.c" Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24210 for x64 Copyright (C) Microsoft Corporation. All rights reserved. cl /c /Zi /W3 /WX- /Od /Ob0 /D WIN32 /D _WINDOWS /D CHECK_FUNCTION_EXISTS=CertFreeCertificateContext /D _DEBUG /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_7909e.dir\Debug\\" /Fd"cmTC_7909e.dir\Debug\vc140.pdb" /Gd /TC /errorReport:queue "C:\Program Files\CMake\share\cmake-3.6\Modules\CheckFunctionExists.c" CheckFunctionExists.c Link: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:QUEUE /OUT:"E:\WORK\github\cmake_issue_checklibraryexist\build.64\CMakeFiles\CMakeTmp\Debug\cmTC_7909e.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib crypt32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:/WORK/github/cmake_issue_checklibraryexist/build.64/CMakeFiles/CMakeTmp/Debug/cmTC_7909e.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"E:/WORK/github/cmake_issue_checklibraryexist/build.64/CMakeFiles/CMakeTmp/Debug/cmTC_7909e.lib" /MACHINE:X64 /machine:x64 cmTC_7909e.dir\Debug\CheckFunctionExists.obj cmTC_7909e.vcxproj -> E:\WORK\github\cmake_issue_checklibraryexist\build.64\CMakeFiles\CMakeTmp\Debug\cmTC_7909e.exe 00A 00000000 UNDEF notype () External | CertFreeCertificateContext for 64-bit > Thanks, > > --Ben So looks like name mangling differs for different targets. -- Best Regards, Sergei Nikulov -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers