msg160780 - (view) |
Author: Jason R. Coombs (jaraco) *  |
Date: 2012-05-16 00:10 |
It appears with the latest changes (cdcc816dea85), ctypes builds as _ctypes_test.pyd, not _ctypes.pyd. This causes 'import ctypes' to fail with an ImportError and thus causes tests to fail that depend on test.support (which imports ctypes). I first noticed this issue in features/pep-420, but the same behavior is present in the main repository. I cannot test it because Python fails to start altogether, but I see _ctypes_test.pyd in the pcbuild/amd64 directory. |
|
|
msg160787 - (view) |
Author: Jason R. Coombs (jaraco) *  |
Date: 2012-05-16 00:51 |
I see now that _ctypes is in fact in the solution, and if I open the solution in visual studio and build it manually, it gets built. Even if I just build the solution in visual studio, it gets built. However, if I run the following command, _ctypes doesn't get built: msbuild pcbuild.sln /p:Configuration=Release /p:Platform=x64 The output log doesn't mention "ctypes.", so it appears as if it's not attempting to build it at all. This would work for me a week or two ago, prior to the VS2010 conversion (though I would convert the project before building), so this behavior feels a bit like a regression. |
|
|
msg160795 - (view) |
Author: Jason R. Coombs (jaraco) *  |
Date: 2012-05-16 01:57 |
I've discovered a few things: - _ctypes depends on pythoncore. - other projects that depend on pythoncore are not built by msbuild. - If I remove the dependency of _ctypes on pythoncore and then do the build with msbuild, _ctypes is built and I can import ctypes. - If instead I explicitly specify _ctypes as a target, it gets built (and along with a regular build, I can import ctypes). I see why that ctypes does depend on pythoncore, because it needs python33.lib to link. In trying to discover how to have msbuild attempt to build the entire solution, I ran across [this article](http://blogs.msdn.com/b/visualstudio/archive/2010/12/21/incorrect-solution-build-ordering-when-using-msbuild-exe.aspx) which says that best practice is not to declare project dependencies in a solution file at all but instead declare project dependencies in the project files themselves (so _ctypes should pythoncore, for example). I plan to look into this issue more later. |
|
|
msg160798 - (view) |
Author: Brian Curtin (brian.curtin) *  |
Date: 2012-05-16 05:00 |
Can you try http://bugs.python.org/file25583/pcbuildpatch.patch from #13210? |
|
|
msg161202 - (view) |
Author: Kristján Valur Jónsson (kristjan.jonsson) *  |
Date: 2012-05-20 11:09 |
I'm able to reproduce this problem with the latest changes to PCBuild. Are you saying that there are other projects like _ctypes that are not built? I'm not able to see any different between _ctypes_test and _ctypes on the .vcxsproj level that would explain this, or in the sln. Perhaps there is another bug in msbuild? |
|
|
msg161203 - (view) |
Author: Kristján Valur Jónsson (kristjan.jonsson) *  |
Date: 2012-05-20 11:12 |
Hm, I see that this applies to _decimal, _testbuffer and xxlimited too. When msbuild is invoked with MSBUILDEMITSOLUTION=1, it leaves a .metaproj file in place for those projects. |
|
|
msg161204 - (view) |
Author: Kristján Valur Jónsson (kristjan.jonsson) *  |
Date: 2012-05-20 11:24 |
Found the issue. Manual dependencies in the .sln file had to be removed. |
|
|
msg161205 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2012-05-20 11:27 |
New changeset 2e96629c6dab by Kristján Valur Jónsson in branch 'default': Issue 14821: http://hg.python.org/cpython/rev/2e96629c6dab |
|
|
msg161501 - (view) |
Author: Jason R. Coombs (jaraco) *  |
Date: 2012-05-24 12:28 |
Excellent! The latest tip now builds nicely using msbuild. |
|
|