Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
> I suggest you try the experiment of using the system version of > libcurl instead (which also supplies SSL capability). For example, my > Linux distribution is Debian Stable which only installs libssl 1.0.1. > And for that case when I tried the bootstrap method with the > --system-curl option (the usual way I build cmake), I do not confirm > your linking issue. So my expectation is you will also avoid that > linking issue on Ubuntu 2016.10 if you use that bootstrap option or a > similar system libcurl option for the non-bootstrap case. I tried running ./bootstrap with the --system-curl option, and I see a different error: [ 93%] Linking CXX executable ../bin/ccmake /usr/bin/ld: ../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_cryptor.c.o): undefined reference to symbol 'EVP_aes_256_ecb@@OPENSSL_1.0.0' //lib/x86_64-linux-gnu/libcrypto.so.1.0.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status Source/CMakeFiles/ccmake.dir/build.make:420: recipe for target 'bin/ccmake' failed make[2]: *** [bin/ccmake] Error 1 CMakeFiles/Makefile2:2135: recipe for target 'Source/CMakeFiles/ccmake.dir/all' failed make[1]: *** [Source/CMakeFiles/ccmake.dir/all] Error 2 Makefile:162: recipe for target 'all' failed make: *** [all] Error 2 So the problem is likely on my end. -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
On 31.03.2017 22:44, Alan W. Irwin wrote: Therefore, from the sidelines I am encouraging you guys to be extraordinarily careful about this particular issue; e.g., by attempting to to confirm this CMake-3.8.0-rc4 issue independently for Ubuntu 16.10. FWIW I tried reproducing it from within an Ubuntu 16.10 Docker container and it worked there as-is. Nils -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
On 2017-03-31 14:00+0200 Nils Gladitz wrote: On 03/31/2017 11:54 AM, Alan W. Irwin wrote: Hi Nils: And use of ExternalProject_Add, etc. In other words, this is a pretty crippling restriction for users with Linux distributions (such as the quite recent Ubuntu 2016.10 of the original poster) that do not yet give access to libssl version 1.1.0 (the oldest version of libssl where HMAC_CTX_new() and HMAC_CTX_free() are available according to your previous post). Strangely enough I have no issue on Ubuntu 16.04 with the system default installation of OpenSSL. What I missed in the original post is that the error comes from libarchive rather than libcurl. But libarchive itself also seems to provide inline definitions of the missing functions in Utilities/cmlibarchive/libarchive/archive_openssl_hmac_private.h for OpenSSL < 1.1. I can't tell why the inline definitions aren't used on the original posters system. Perhaps there is a mismatch between OpenSSL headers and libraries? Hi Nils: Strictly from what you have said (since my result bypassed OpenSSL completely by using libcurl for SSL functionality), it appears to me that CMake (or libarchive?) developers have attempted to adjust for the case where OpenSSL < 1.1, and that adjustment works for you with Ubuntu 16.04, but does not work for the O.P. with Ubuntu 16.10. Ultimately, of course, it is strictly up to the CMake developers how carefully they respond to reports of OpenSSL issues, but from my perspective CMake SSL functionality is important because of the widely used ExternalProject module that depends on that functionality. Therefore, from the sidelines I am encouraging you guys to be extraordinarily careful about this particular issue; e.g., by attempting to to confirm this CMake-3.8.0-rc4 issue independently for Ubuntu 16.10. Further to such confirmation does the CMake dashboard already test system OpenSSL for the Ubuntu 16.10 case or does one of the CMake developers have ready access to a Ubuntu 16.10 system so they can attempt to confirm the issue? That is the end of my ideas for helping you to debug this issue so I am likely bowing out of further discussion in this thread. Alan __ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __ Linux-powered Science __ -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
On 03/31/2017 11:54 AM, Alan W. Irwin wrote: Hi Nils: And use of ExternalProject_Add, etc. In other words, this is a pretty crippling restriction for users with Linux distributions (such as the quite recent Ubuntu 2016.10 of the original poster) that do not yet give access to libssl version 1.1.0 (the oldest version of libssl where HMAC_CTX_new() and HMAC_CTX_free() are available according to your previous post). Strangely enough I have no issue on Ubuntu 16.04 with the system default installation of OpenSSL. What I missed in the original post is that the error comes from libarchive rather than libcurl. But libarchive itself also seems to provide inline definitions of the missing functions in Utilities/cmlibarchive/libarchive/archive_openssl_hmac_private.h for OpenSSL < 1.1. I can't tell why the inline definitions aren't used on the original posters system. Perhaps there is a mismatch between OpenSSL headers and libraries? Nils -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
On 2017-03-31 09:12+0200 Nils Gladitz wrote: On 03/31/2017 09:04 AM, ウルヰ wrote: To disable OpenSSL e.g. "cmake ... -DCMAKE_USE_OPENSSL=false" or "bootstrap ... -- -DCMAKE_USE_OPENSSL=false". What would be the ramifications of building CMake without OpenSSL? As far as I am aware it would mean no "https://; support in curl which would mean no "https://; support in e.g. file(DOWNLOAD) and CTest submissions. Hi Nils: And use of ExternalProject_Add, etc. In other words, this is a pretty crippling restriction for users with Linux distributions (such as the quite recent Ubuntu 2016.10 of the original poster) that do not yet give access to libssl version 1.1.0 (the oldest version of libssl where HMAC_CTX_new() and HMAC_CTX_free() are available according to your previous post). @ The original poster, ウルヰ(whose real name I do not know because he obviously did not use the normal UTF-8 encoding for his mail address name): I suggest you try the experiment of using the system version of libcurl instead (which also supplies SSL capability). For example, my Linux distribution is Debian Stable which only installs libssl 1.0.1. And for that case when I tried the bootstrap method with the --system-curl option (the usual way I build cmake), I do not confirm your linking issue. So my expectation is you will also avoid that linking issue on Ubuntu 2016.10 if you use that bootstrap option or a similar system libcurl option for the non-bootstrap case. @Nils: Even if the original poster finds the suggested workaround (of using the system version of libcurl rather than system version of libopenssl) works to provide key CMake SSL functionality, on general principles (because Linux distribution support for libssl version 1.1.0 is obviously not widespread at the current time), I would strongly suggest CMake developers drop use of HMAC_CTX_new() and HMAC_CTX_free() throughout CMake for the final version of CMake-3.8.0. Alan __ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __ Linux-powered Science __ -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
On 03/31/2017 09:04 AM, ウルヰ wrote: To disable OpenSSL e.g. "cmake ... -DCMAKE_USE_OPENSSL=false" or "bootstrap ... -- -DCMAKE_USE_OPENSSL=false". What would be the ramifications of building CMake without OpenSSL? As far as I am aware it would mean no "https://; support in curl which would mean no "https://; support in e.g. file(DOWNLOAD) and CTest submissions. Nils -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
> To disable OpenSSL e.g. "cmake ... -DCMAKE_USE_OPENSSL=false" or "bootstrap > ... -- -DCMAKE_USE_OPENSSL=false". What would be the ramifications of building CMake without OpenSSL? -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
On 03/31/2017 07:46 AM, ウルヰ wrote: ../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_hmac.c.o): In function `__hmac_sha1_init': archive_hmac.c:(.text+0x25): undefined reference to `HMAC_CTX_new' ../Utilities/cmlibarchive/libarchive/libcmlibarchive.a(archive_hmac.c.o): In function `__hmac_sha1_cleanup': archive_hmac.c:(.text+0x12d): undefined reference to `HMAC_CTX_free' collect2: error: ld returned 1 exit status Source/CMakeFiles/ccmake.dir/build.make:422: recipe for target 'bin/ccmake' failed make[2]: *** [bin/ccmake] Error 1 CMakeFiles/Makefile2:2314: recipe for target 'Source/CMakeFiles/ccmake.dir/all' failed make[1]: *** [Source/CMakeFiles/ccmake.dir/all] Error 2 Makefile:162: recipe for target 'all' failed make: *** [all] Error 2 Is this a bug with the build configuration or have I forgotten to do something I need to do? According to the OpenSSL documentation HMAC_CTX_new() and HMAC_CTX_free() were introduced in 1.1.0. Presumably your OpenSSL version is older than that and disabling OpenSSL (presuming you don't need it) or building against a newer version should help. To disable OpenSSL e.g. "cmake ... -DCMAKE_USE_OPENSSL=false" or "bootstrap ... -- -DCMAKE_USE_OPENSSL=false". To point CMake at a custom OpenSSL installation instead setting the CMAKE_PREFIX_PATH environment to the installation should work. Nils -- 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
Re: [CMake] Linker error when building 3.8.0-rc4 on Linux
Can confirm that this happens with the latest source from Github as well. -- 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