Closed ronchristie52 closed 1 week ago
Thank you for the detailed report. This is not a problem in your configuration, rather there was a bug in 3.5.0 that only (AFAIK) manifested on the latest version of VS2022. This is fixed by the patch in https://github.com/randombit/botan/commit/db4f8e0ac9cc5bc7224a0e220eee4ea3b4d4ef26 which you can apply directly to 3.5.0
Alternately if patching is undesirable you can configure using —disable-modules=pcurves
which - in 3.5.0 only - does not have much negative effect. This is a new elliptic curve implementation that in 3.5.0 was shipped as a technology preview. Disabling it would not cause any noticable effect except that hash2curve would not be available; if you don’t know what hash2curve is then you are certainly not using it. [In 3.6.0 and later versions, the new library is used for all EC arithmetic and disabling it will cause a significant performance regression; but there should be no reason to avoid it in 3.6.0 since we’ve already fixed the build problem in master]
Thanks Jack. The library now builds correctly. Now, back to the documentation to figure out how to use it. ;-)
Hi all,
I'm having some difficulty building Botan 3-5.0 using the instructions in "Building the library" with Visual Studio 2022. I suspect that I've managed to change the build environment so that something no longer works.
I'm by no means a C++ programmer, nor do I use Visual Studio extensively so I'm pretty much at sea trying to figure out where things went off the rails.
First, I loaded the "x86 Native Tools Command Prompt for VS 2022"
I configured with:
configure.py --cpu=x86_32
I'm including the relevant portion of the output from make:
cl /DBOTAN_DLL=__declspec(dllexport) /std:c++20 /EHs /GR /D_WIN32_WINNT=0x0600 /MD /bigobj /O2 /Oi /Zc:throwingNew /W4 /wd4251 /wd4275 /wd5072 -DBOTAN_IS_BEING_BUILT /I build/include/public /I build/include/internal /external:W0 /external:I build/include/external /nologo /c C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp /Fobuild/obj/lib/math_pcurves.obj pcurves.cpp build/include/internal\botan/internal/pcurves_id.h(57): error C2039: 'string': is not a member of 'std' C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.41.34120\include__msvc_string_view.hpp(22): note: see declaration of 'std' build/include/internal\botan/internal/pcurves_id.h(57): error C3646: 'to_string': unknown override specifier build/include/internal\botan/internal/pcurves_id.h(57): error C2059: syntax error: '(' build/include/internal\botan/internal/pcurves_id.h(57): error C2238: unexpected token(s) preceding ';' C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp(118): error C2039: 'to_string': is not a member of 'Botan::PCurve::PrimeOrderCurveId' build/include/internal\botan/internal/pcurves_id.h(27): note: see declaration of 'Botan::PCurve::PrimeOrderCurveId' C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp(118): error C2270: 'to_string': modifiers not allowed on nonmember functions C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp(119): error C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp(120): error C2440: 'type cast': cannot convert from 'Botan::PCurve::PrimeOrderCurveId::Code' to 'int' C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp(120): note: This conversion requires an explicit cast (static_cast, C-style cast or parenthesized function-style cast) C:/botan/Botan-3.5.0/src/lib/math/pcurves/pcurves.cpp(120): error C2046: illegal case