Skip to content

_MSC_VER is now always >= 1800 (Visual C++ 2013 / Visual C++ 12.0) #19226

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 16, 2021

Conversation

steve-m-hay
Copy link
Contributor

No description provided.

@steve-m-hay steve-m-hay requested review from tonycoz and xenu November 9, 2021 17:50
@steve-m-hay
Copy link
Contributor Author

In testing this, I stumbled across #18783, which we probably ought to resolve one way or another too. FWIW, I'm fine with dropping support for the mingw.org compilers.
Two commits on that PR (a644daa and 9994e22) were identified as useful even if we drop mingw.org support. The first of those can be simplified in line with this PR if this PR is approved.

@sisyphus
Copy link
Contributor

One thing I notice is that the removal of # if _MSC_VER >= 1500 at line 655 of win32.h makes the # ifndef _SAFECRT_IMPL block available to mingw-w64 compilers - unless there's some other encompassing preprocessor block that is excluding mingw-w64 compilers.
I don't know if that matters.
I'll also point out that the io/socket.t failure reported for this PR is one that I don't see with my own mingw-w64 builds of blead.

@steve-m-hay
Copy link
Contributor Author

One thing I notice is that the removal of # if _MSC_VER >= 1500 at line 655 of win32.h makes the # ifndef _SAFECRT_IMPL block available to mingw-w64 compilers - unless there's some other encompassing preprocessor block that is excluding mingw-w64 compilers. I don't know if that matters. I'll also point out that the io/socket.t failure reported for this PR is one that I don't see with my own mingw-w64 builds of blead.

Good spot. I will rework this section a little bit and update the PR. We're inside a section marked "#if (!defined(_MSC_VER)) || (defined(_MSC_VER) && _MSC_VER < 1900)", which now basically means "if gcc or _MSC_VER==1800". So WIN32_DYN_IOINFO_SIZE is only defined for _MSC_VER 1800 and the "#ifndef WIN32_DYN_IOINFO_SIZE" block only applies to gcc now so the part that was for _MSC_VER >= 1500 can be removed.

Comment on lines -546 to -550
#if defined(_MSC_VER) && _MSC_VER < 1400
/* XXX older MSVC versions have a smallish macro buffer */
# define PERL_SMALL_MACRO_BUFFER
#endif

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be possible to eliminate all PERL_SMALL_MACRO_BUFFER references, since the macro was added to support older MSVC and it isn't defined anywhere else.

@khw might have an opinion here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I oppose removal of this at this time. I think we may find it useful

@khwilliamson
Copy link
Contributor

xenu left his approval, so I'm merging

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants