How to use 64bit version of cl.exe for build?

anmol's Avatar

anmol

04 Sep, 2018 08:59 PM

I seem to be having 2 issues,

1. I specify using the image of Visual Studio 2017 but the build continues to ignore this and uses Visual Studio 14 and the 32 bit version of cl.exe.

2. I'm not sure how to get cl.exe to use the 64 bit version of itself that is needed for my python based project.
Any help is much appreciated as I'm not familiar with Appveyor

Link is below to the build:
https://ci.appveyor.com/project/h2oops/datatable/build/0.4.146/job/o1yhx34b7lbta2g6

  1. Support Staff 1 Posted by Owen McDonnell on 05 Sep, 2018 08:00 AM

    Owen McDonnell's Avatar

    You need to call vcvars64.bat as described here.

  2. 2 Posted by anmol on 05 Sep, 2018 07:39 PM

    anmol's Avatar

    This should be called in the `init` step of the yaml file for anyone else looking for the solution and thank you for the above response.

  3. Owen McDonnell closed this discussion on 05 Sep, 2018 09:12 PM.

  4. anmol re-opened this discussion on 05 Sep, 2018 10:21 PM

  5. 3 Posted by anmol on 05 Sep, 2018 10:21 PM

    anmol's Avatar

    This still doesn't seem to solve the issue.

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox s (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\winrt" "-Ic:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE" "-IC:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE" "-IC:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\gl" /EHsc /Tpc\capi.cc /Fobuild\temp.win32-3.5\Release\c\capi.obj
    capi.cc

    c:\users\appveyor\appdata\local\temp\1\pip-req-build-kllf80pc\c\python/list.h(33): error C2034: 'py::olist::<alignment member>': type of bit field too small for number of bits
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status
    
  6. Support Staff 4 Posted by Owen McDonnell on 06 Sep, 2018 12:14 AM

    Owen McDonnell's Avatar

    Can you please link to a specific build.

  7. 5 Posted by anmol on 06 Sep, 2018 12:17 AM

    anmol's Avatar
  8. Support Staff 6 Posted by Owen McDonnell on 06 Sep, 2018 04:45 PM

    Owen McDonnell's Avatar

    Have you tried a build on Visual Studio 2017 image as per your initial post?

  9. 7 Posted by anmol on 06 Sep, 2018 06:41 PM

    anmol's Avatar

    It seems to still force the use of VS 14 as seen here near the end of the build, the start however does initialize with VS 2017.

    https://ci.appveyor.com/project/h2oops/datatable/build/0.4.159/job/...

  10. Support Staff 8 Posted by Owen McDonnell on 12 Sep, 2018 03:19 AM

    Owen McDonnell's Avatar

    I admit i'm far from an expert on python build process (setup.py etc.) so can you explain this commit to me. I could be wrong but just by name alone, it looks significant.

  11. 9 Posted by anmol on 13 Sep, 2018 06:42 PM

    anmol's Avatar

    I tried changing the syntax to use win64 as something that may resolve the issue with the builds running on Windows based systems; but further research showed that win32 is sufficient even when dealing with x64 systems and this did not change any of the results.

  12. Support Staff 10 Posted by Owen McDonnell on 18 Sep, 2018 10:19 PM

    Owen McDonnell's Avatar

    I noticed that it uses a different version of cl.exe (i.e. the vs2017 one) on your python 3.6 build. I also noticed (in my own fork) that if I have set the vcvars and then I call - where cl.exe just before the command that results in error, it still points to the visual studio 2017 version.
    Do those facts bring anything to mind?

  13. 11 Posted by anmol on 20 Sep, 2018 10:01 PM

    anmol's Avatar

    I've noticed this as well, VS 2017 does not seem to be used, I'll set - where cl.exe to see where it points to.

    https://ci.appveyor.com/project/h2oops/datatable/build/0.4.160/job/...

    It says VS 2017 when I ask - where, but later in the build is shows it still uses VS 2014 instead.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac