On Sun, Mar 20, 2022 at 9:41 AM Sal Pamukcu via Boost
On Fri, Mar 18, 2022 at 1:53 AM Andrey Semashev via Boost < boost@lists.boost.org> wrote:
On 3/18/22 00:26, Sal Pamukcu via Boost wrote:
On Thu, Mar 17, 2022 at 11:24 PM Andrey Semashev via Boost < boost@lists.boost.org> wrote:
On 3/17/22 22:31, Sal Pamukcu via Boost wrote:
- Compiled on Win 11 MSVC 2002 x64 toolchain with c++20 using b2 cxxstd=20 --build-type=complete stage
failed 5 target ; (mostly related to python) The full built message are on gist ; boost179b1_MSVC (github.com) <https://gist.github.com/salimp2009/074cf168b4dd1231aa92fcc3845e2df7
I will do another build on windows with gcc-11.2 with MSys;
``` ...failed updating 5 targets... ...skipped 9 targets... ...updated 8376 targets... ```
Failures are like this ; `...failed msvc.link.dll
bin.v2\libs\python\build\msvc-14.3\debug\address-model-32\cxxstd-20-iso\python-3.10\threading-multi\boost_python310-vc143-mt-gd-x32-1_79.dll
bin.v2\libs\python\build\msvc-14.3\debug\address-model-32\cxxstd-20-iso\python-3.10\threading-multi\boost_python310-vc143-mt-gd-x32-1_79.lib
bin.v2\libs\python\build\msvc-14.3\debug\address-model-32\cxxstd-20-iso\python-3.10\threading-multi\boost_python310-vc143-mt-gd-x32-1_79.pdb...`
Looks like the problem is that you're building 32-bit Boost.Python and linking with 64-bit Python libraries. I'm not sure if Boost.Python is supposed to find the correct libraries or this is just a user configuration error.
Do you mean my configuration mistake; i installed python 3.10 64 bit and checked from MSVC VS 2022 64 bit command line using this ; It looks like my Python is 64 bit;
C:\Program Files\Microsoft Visual Studio\2022\Community> C:\Program Files\Microsoft Visual Studio\2022\Community>python Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import struct version = struct.calcsize("P")*8 print(version) 64
is there a way to configure when building with b2 I used this ; b2 cxxstd=20 --build-type=complete stage
By default both 32 and 64-bit Boost binaries are built. To build only 64-bit binaries you can add address-model=64 to the b2 command line. If you want to build 32-bit libraries, use address-model=32 and also make sure 32-bit Python libraries are found by the build process.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
I did another build on Windows 11 ; this time using gcc-11.2 (via MSys2 MinGW), c++20 I did 2 runs one on command line and one on x64 Native Tool MSCV 2022 Also used address-model=64 to avoid Python 32-bit No errors but compiled way less files this time ; typically it was around ~8000+ this time "...updated 3693 targets.." command line i used ; b2 cxxstd=20 address-model=64 toolset=gcc --build-type=complete stage
as usual got warning for auto_ptr and this one ;
C:/msys64/mingw64/include/c++/11.2.0/ext/new_allocator.h:145:26: warning: 'void operator delete(void*, std::size_t)' called on unallocated object 'boost::wave::util::SimpleStringStorage
::emptyString_' [-Wfree-nonheap-object] 145 | ::operator delete(__p | ~~~~~~~~~~~~~~~~~^~~~ 146 | #if __cpp_sized_deallocation | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 147 | , __t * sizeof(_Tp) | ~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | );
If needed I can put the whole build outputs on gist.
This looks like the same issue as https://github.com/boostorg/wave/issues/159. I think it's a new analysis in gcc 11 that we haven't seen before (and therefore not a regression).
Only one question is it normal to use address-model=64 or should this be detected thru b2 or CMake and if it causes any other needed libraries skipped because there was quite a bit of difference in the updated amount
Salim Pamukcu
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost