
---------- Forwarded message ---------- From: <mark.incley@synx.com> Date: Wed, Apr 8, 2015 at 1:29 AM Subject: Boost.Python build error in 1.58 RC1, 2 and 3 (OK in Beta 1) To: mclow.lists@gmail.com Hi Marshall, Please excuse the direct mail, but my mailing list posting wasn't picked up on by anyone. I believe I've found a problem in Boost.Python that causes build errors if the user has Python 3.0 or later on their system. This change appears to have been introduced after 1.58 Beta 1. Using: bjam address-model=32 runtime-link=shared toolset=msvc-12.0 --stagedir=./stage/x86 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xtgmath.h(206) : warning C4273: 'round' : inconsistent dll linkage C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(516) : see previous definition of 'round' libs\python\src\exec.cpp(91) : error C2664: 'FILE *_Py_fopen(PyObject *,const char *)' : cannot convert argument 1 from 'char *' to 'PyObject *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast call "C:\Users\MARK~1.INC\AppData\Local\Temp\b2_msvc_12.0_vcvarsall_x86.cmd" >nul cl /Zm800 -nologo @"bin.v2\libs\python\build\msvc-12.0\debug\link-static\threading-multi\exec.obj.rsp" ...failed compile-c-c++ bin.v2\libs\python\build\msvc-12.0\debug\link-static\threading-multi\exec.obj… The problem appears to be this Boost.Python code that was changed some time after 1.58 Beta 1 and appears in 1.58 RC1 within boost\libs\python\src\exec.cpp at around line 91: 1.58 beta 1: FILE *fs = fopen(f, "r"); 1.58 RCs: FILE *fs = _Py_fopen(f, "r"); ← f is a char *, hence the error shown above. It expects a PyObject * as the first parameter. This code occurs within a test for #if PY_VERSION_HEX >= 0x03000000 which may explain why no-one else has reported it – I have Python 3.3.0 on my HDD. Cheers, Mark. _____________________________________ Sent from http://boost.2283326.n4.nabble.com