Different (wrong?) MSVC version found in 46.0
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.9k
- Forks
- 1.4k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 1
Description
Hi,
Upgrading from setuptools 45.2 to 46 I am having problem with it finding different versions of the msvc compiler. I am on Win10 with 32bit python 3.5.4.
Using setuptools 45.2, the following compiler path is used:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe
Using setuptools 46, the following compiler path is used:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.exe
The latter ends up with the following error:
fatal error C1047: The object or library file '*.lib' was created with an older compiler than other objects; rebuild old objects and libraries
whereas the former works (and have worked for several years). The lib that is being linked is built with the msvc 14.0 compiler.
This seems to be related to #1904 . Is this change of behavior according to expectations?
It seems that even though the range of msvc 14.x compilers should be binary compatible, there are exceptions: https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=vs-2019
The /GL flag restriction is probably what goes south here as it seems that setuptools enables this one by default?
A workaround (even though it is not very sustainable) is obviously to avoid updating setuptools.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing issue #1904 and reproducing the compiler selection difference between setuptools 45.2 and 46 on Windows with Python 3.5.4. Compare the selected MSVC versions and the /GL-related linking failure; the issue is resolved when the expected compiler behavior is established or the incompatible library case has a documented fix.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100