python / cpython

The Python programming language
https://www.python.org
Other
62.83k stars 30.09k forks source link

Can't build under VS2008 anymore #59018

Closed pitrou closed 11 years ago

pitrou commented 12 years ago
BPO 14813
Nosy @loewis, @pitrou, @tiran, @briancurtin, @skrah
Files
  • vs-9.0.diff
  • vs-9.0-dos.diff
  • vs-9.0-linux.diff
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields: ```python assignee = None closed_at = created_at = labels = ['build'] title = "Can't build under VS2008 anymore" updated_at = user = 'https://github.com/pitrou' ``` bugs.python.org fields: ```python activity = actor = 'skrah' assignee = 'none' closed = True closed_date = closer = 'pitrou' components = ['Build'] creation = creator = 'pitrou' dependencies = [] files = ['25608', '25609', '25610'] hgrepos = [] issue_num = 14813 keywords = ['patch'] message_count = 30.0 messages = ['160704', '160711', '160715', '160734', '160738', '160742', '160744', '160770', '160771', '160773', '160774', '160775', '160776', '160779', '160827', '160830', '160832', '160834', '160835', '160838', '160839', '160841', '160855', '160915', '160917', '160933', '160935', '191122', '191123', '191127'] nosy_count = 6.0 nosy_names = ['loewis', 'pitrou', 'christian.heimes', 'brian.curtin', 'skrah', 'python-dev'] pr_nums = [] priority = 'normal' resolution = None stage = 'resolved' status = 'closed' superseder = None type = 'compile error' url = 'https://bugs.python.org/issue14813' versions = ['Python 3.3'] ```

    pitrou commented 12 years ago

    I tried to build PC/VS9.0/pcbuild.sln using Visual Studio 2008, but it failed:

    1>------ Build started: Project: make_buildinfo, Configuration: Release Win32 ------ 2>------ Build started: Project: kill_python, Configuration: Debug x64 ------ 2>Compiling... 1>Compiling... 2>kill_python.c 1>make_buildinfo.c 2>c1 : fatal error C1083: Cannot open source file: '.\kill_python.c': No such file or directory 1>c1 : fatal error C1083: Cannot open source file: '.\make_buildinfo.c': No such file or directory 2>Build log was saved at "file://Z:\default\PC\VS9.0\x64-temp-Debug\kill_python\BuildLog.htm" 2>kill_python - 1 error(s), 0 warning(s) 1>Build log was saved at "file://Z:\default\PC\VS9.0\Win32-temp-Release\make_buildinfo\BuildLog.htm" 1>make_buildinfo - 1 error(s), 0 warning(s) 3>------ Build started: Project: make_versioninfo, Configuration: Debug Win32 ------ 4>------ Build started: Project: w9xpopen, Configuration: Debug x64 ------ 3>Compiling... 4>Compiling... 3>make_versioninfo.c 4>w9xpopen.c 3>c1 : fatal error C1083: Cannot open source file: '..\PC\make_versioninfo.c': No such file or directory 4>c1 : fatal error C1083: Cannot open source file: '..\PC\w9xpopen.c': No such file or directory 3>Build log was saved at "file://Z:\default\PC\VS9.0\Win32-temp-Debug\make_versioninfo\BuildLog.htm" 3>make_versioninfo - 1 error(s), 0 warning(s) 4>Build log was saved at "file://Z:\default\PC\VS9.0\x64-temp-Debug\w9xpopen\BuildLog.htm" 4>w9xpopen - 1 error(s), 0 warning(s) 5>------ Build started: Project: pythoncore, Configuration: Debug x64 ------ 5>Compiling... 5>traceback.c 5>c1 : fatal error C1083: Cannot open source file: '..\Python\traceback.c': No such file or directory 5>thread.c 5>c1 : fatal error C1083: Cannot open source file: '..\Python\thread.c': No such file or directory 5>sysmodule.c [etc.]

    61337411-43fc-4a9c-b8d5-4060aede66d0 commented 12 years ago

    Building with VS 2008 isn't officially supported anymore. If users want to continue to use VS 2008, they need to contribute patches. Preferably, the project files would be generated from the VS2010 project files, but for the moment, manually editing to make them work again might be fine as well.

    Unassigning Brian for now - Brian, if you want to work on this, feel free to assign yourself again.

    pitrou commented 12 years ago

    Building with VS 2008 isn't officially supported anymore. If users want to continue to use VS 2008, they need to contribute patches.

    Well, VS 2010 is probably a multi-GB download and install. Besides, having to juggle between two different VS versions will quickly become confusing.

    Speaking as a non-native Windows developer, there are enough hoops I must jump through to do occasional testing under a Windows VM. So I might simply stop caring.

    61337411-43fc-4a9c-b8d5-4060aede66d0 commented 12 years ago

    Well, VS 2010 is probably a multi-GB download and install. Besides, having to juggle between two different VS versions will quickly become confusing.

    Sure. However, it is not feasible to keep the build systems for many VS versions up-to-date, just because contributors are shy of installing the current version. Tracking two build systems (autoconf and VS) is already difficult enough.

    Speaking as a non-native Windows developer, there are enough hoops I must jump through to do occasional testing under a Windows VM. So I might simply stop caring.

    This is free software. If you don't want to care, you don't have to. It's the same as switching from Subversion to Mercurial: we probably lost some contributors who never bothered to learn Mercurial. That didn't stop us from switching. I expect that most occasional contributors will find it easier to use VS 2010 than VS 2008.

    pitrou commented 12 years ago

    This is free software. If you don't want to care, you don't have to.

    Of course. I'm just pointing this out in relation with the fact that we don't have many Windows-based developers :-)

    I expect that most occasional contributors will find it easier to use VS 2010 than VS 2008.

    Are there any features which make VS 2010 easier to use for us?

    briancurtin commented 12 years ago

    Are there any features which make VS 2010 easier to use for us?

    I don't do much with the IDE besides the basics of writing the code and building it, so I can't really say if it makes anything easier on us. I think the change is just going to be doing the same thing on a newer version.

    The change is more driven from keeping up with what everyone else is using. I did a VS2010 port at my old job over a year ago because we needed it, and CCP games (Kristjan) moved to VS2010 even before that.

    I will look through and see what it may provide that we could take advantage of, but I don't remember seeing much that we could use. C# gets all of the goodies, then C++ is in second place, and all we in C world really get is a new CRT version. However, if we didn't change to 2010 now, due to our release schedule we'd be stuck with VS2008 until at least 2014, which would be at least two VS versions behind by then.

    61337411-43fc-4a9c-b8d5-4060aede66d0 commented 12 years ago

    Are there any features which make VS 2010 easier to use for us?

    Not for us, but for our users. Users request to build Python with VS 2010, because that's all they have. It's already a major pain for Python Windows developers to discover that they can't build Python 2.7 extensions with their VS installation. So we absolutely have to use the latest VS release for each Python release - we will be using that for at least two years, at which point VS 2008 may not be available anymore from MS.

    VS 2008 will end its mainstream support on April 9, 2013; the Extended Support will be available until April 10, 2018. I'm not entirely sure about
    the policy, but I think commercial availability ends with the mainstream support (i.e. in a year from now). I'm also not sure whether this means that they will take VS Express 2008 off the net (which also expires its mainstream support
    in 2013).

    FWIW, VS 2010 Pro has mainstream support until July 14, 2015, and extended support until September 8, 2020 (at this point; they may extend it depending on when the successor version becomes available).

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    I also would appreciate if the VS 2008 build still worked. Currently I can't build the 64-bit version with either VS 2008 or VS 2010:

    TRACKER : error TRK0002: Failed to execute command: ""C:\Program Files (x86)\Microsoft Visual Studio 10 .0\VC\BIN\amd64\CL.exe" @C:\Users\stefan\AppData\Local\Temp\f9f116658f704924b06aa34172aa7fb2.rsp". The
    handle is invalid. [C:\Users\stefan\pydev\cpython\PCbuild\make_buildinfo.vcxproj]

    briancurtin commented 12 years ago

    Does that failure happen to you every time? I occasionally see those RSP files causing some failures, but those are something created by Visual Studio (2008 as well) and they sometimes get held open or cause problems being deleted. I've always had success just rebuilding again and it works.

    I just built the 64-bit release version right now with no issue.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    This happens every time. It wasn't an issue with VS 2008. I'm building on the command line:

    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"

    msbuild /p:useenv=true pcbuild.sln /p:Configuration=Debug /p:Platf orm=x64

    Also, I can't locate vcvarsall.bat. Perhaps I failed to click some hidden 64-bit option during install.

    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\ CL.exe" is present though and it works.

    61337411-43fc-4a9c-b8d5-4060aede66d0 commented 12 years ago

    I also would appreciate if the VS 2008 build still worked.

    Then provide patches.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    This is bizarre. The same command line that fails during build works when I paste it manually:

    [During build] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\CL.exe /c /I..\Include /I..\PC /Zi / nologo /W3 /WX- /Od /Ob1 /Oi /Oy- /D _CONSOLE /D NDEBUG /D _WIN32 /GF /Gm- /MT /GS /Gy /fp:precise /Z c:wchar_t /Zc:forScope /Fo"C:\Users\stefan\pydev\cpython\PCbuild\Win32-temp-Release\make_buildinfo\\" /Fd"C:\Users\stefan\pydev\cpython\PCbuild\Win32-temp-Release\make_buildinfo\vc100.pdb" /Gd /TC /anal yze- /errorReport:queue make_buildinfo.c
    TRACKER : error TRK0002: Failed to execute command: ""C:\Program Files (x86)\Microsoft Visual Studio 10 .0\VC\BIN\amd64\CL.exe" @C:\Users\stefan\AppData\Local\Temp\086a4b92ff8e47e594a60a863ffd70e4.rsp". The
    handle is invalid. [C:\Users\stefan\pydev\cpython\PCbuild\make_buildinfo.vcxproj]

    [Manually: no error]

    C:\Users\stefan\pydev\cpython\PCbuild>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\ CL.exe" /c /I..\Include /I..\PC /Zi /nologo /W3 /WX- /Od /Ob1 /Oi /Oy- /D_CONSOLE /DNDEBUG /D_WIN32 /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"C:\Users\stefan\pydev\cpython\PCbuild\Win32-te mp-Release\make_buildinfo\\" /Fd"C:\Users\stefan\pydev\cpython\PCbuild\Win32-temp-Release\make_buildinfo \vc100.pdb" /Gd /TC /analyze- /errorReport:queue make_buildinfo.c
    make_buildinfo.c

    61337411-43fc-4a9c-b8d5-4060aede66d0 commented 12 years ago

    This is bizarre. The same command line that fails during build works when I paste it manually:

    I'm having problems with F-Secure, VS 2010, and make_buildinfo. F-Secure thinks that make_buildinfo.exe has a virus in it, and quarantines it. I had to disable the life scanner to make it work. You might want to try disabling the virus scanner as well.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    Martin v. L??wis \report@bugs.python.org\ wrote:

    I'm having problems with F-Secure, VS 2010, and make_buildinfo. F-Secure thinks that make_buildinfo.exe has a virus in it, and quarantines it.

    I don't have a virus scanner, since I only use the VM for testing. Apparently many people had this problem. Here's a thread with Microsoft claiming that the problem is due to a case sensitive file system:

    http://connect.microsoft.com/VisualStudio/feedback/details/505682/x64-c-c-projects-cannot-compile

    As several other people in that thread, I'm pretty certain that I didn't install SUA. Also, I can create lower case files and open them as upper case.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    Here's a patch. I can build win32 and "Release|x64". However, the executables immediately exit; this might be related to bpo-14822.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    Regarding the VS 2010 build failure, using the cross tools builds python_d.exe:

    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat" msbuild /p:useenv=true pcbuild.sln /p:Configuration=Debug /p:Platform=x64

    Again, the executables immediately exit (bpo-14822 ?).

    pitrou commented 12 years ago

    The patch doesn't apply here, line endings perhaps?

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    Probably line endings. It applies with cygwin's patch:

    C:\Users\stefan\pydev\cpython>patch -p1 \< vs-9.0.diff
    patching file PC/VS9.0/_bz2.vcproj
    patching file PC/VS9.0/_ctypes.vcproj [...]

    I'm uploading a dos version.

    pitrou commented 12 years ago

    I'm uploading a dos version.

    Still doesn't work. It may be because I'm doing all this in a Linux checkout without the hgeol extension enabled, though.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    Hm, vs-9.0.diff applies here on Linux, too. A final try... :)

    pitrou commented 12 years ago

    Hm, vs-9.0.diff applies here on Linux, too. A final try... :)

    Works, thank you :-)

    pitrou commented 12 years ago

    Both debug x64 and release x64 executables seem to work here, with latest tip.

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    [VS 2008]

    Most recent tip is ok here, too: all executables run again.

    There's still a link failure in "Debug|x64" mode, but that appears harmless:

    lib /def:python33stub.def /out:C:\Users\stefan\pydev\cpython\PC\VS9.0\x64-pgo\python33stub.lib /MACHINE:x64
    Microsoft (R) Library Manager Version 9.00.21022.08
    Copyright (C) Microsoft Corporation. All rights reserved.
    Creating library C:\Users\stefan\pydev\cpython\PC\VS9.0\x64-pgo\python33stub.lib and object C:\Users\stefan\p ydev\cpython\PC\VS9.0\x64-pgo\python33stub.exp
    LINK : fatal error LNK1104: cannot open file 'C:\Users\stefan\pydev\cpython\PC\VS9.0\x64-pgo\python33stub.lib'
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\lib.EXE"' : ret urn code '0x450'
    Stop.
    Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 12 years ago

    Preferably, the project files would be generated from the VS2010 project files, but for the moment, manually editing to make them work again might be fine as well.

    Martin, Brian: Can I go ahead with vs-9.0.diff or would it interfere with your work?

    briancurtin commented 12 years ago

    I don't have time at the moment to test it, but the patch looks like it's probably ok.

    61337411-43fc-4a9c-b8d5-4060aede66d0 commented 12 years ago

    Zitat von Stefan Krah \report@bugs.python.org\:

    Stefan Krah \stefan-usenet@bytereef.org\ added the comment:

    > Preferably, the project files would be generated from the VS2010
    > project files, but for the moment, manually editing to make them
    > work again might be fine as well.

    Martin, Brian: Can I go ahead with vs-9.0.diff or would it interfere with your work?

    It's fine with me.

    1762cc99-3127-4a62-9baf-30c3d0f51ef7 commented 12 years ago

    New changeset f6a207d86154 by Stefan Krah in branch 'default': bpo-14813: Fix Visual Studio 2008 build after the move into the PC/VS9.0 http://hg.python.org/cpython/rev/f6a207d86154

    tiran commented 11 years ago

    Is there anything left to do or can I close this bug?

    pitrou commented 11 years ago

    I don't have my Windows VM anymore, so unfortunately I won't be able to tell you whether there is still a build problem :)

    5531d0d8-2a9c-46ba-8b8b-ef76132a492c commented 11 years ago

    Building the external packages isn't fixed yet, but I don't know if it's worth the trouble.